前言:最近想试试抓取大众点评数据,找了些开源代码发现基本上都用不了。自己写了一个能跑起来的项目,分享给大家,首先抓取“海底捞”店铺的列表页数据。

注意,大众点评的采集需要全程登录,我是直接使用自己账号的cookie登录。

1.找到列表页请求接口

**进入点评网首页 搜索海底捞,找到列表页接口
https://www.dianping.com/search/keyword/344/%E6%B5%B7%E5%BA%95%E6%8D%9E/p1

可以看到这个url有几个参, 第一个344是搜索的地区,中间那一段乱码代表的是搜索关键字(搜索关键字后 查看接口,根据url参数,就可以替换关键字为乱码),p1是翻页参数**

可以看到 店铺信息的返回数据都是加密字符 因为点评网自己加载了字体文件

2.破解字体文件反爬

进入这个url
这些以woff为结尾就是字体文件 把他们下载到本地 用FontCreator加载下(用百度在线字体打开会报错 不知道什么原因)


可以看到 每一个汉字都会对应一个编码 接下来就要将汉字和编码组成一个映射表。

这里可以选择用ocr识别或者用第三方库fontTools加载字体文件(ocr不是那么准确),我这里用第二种方式。
首先取出全部的汉字编码 存储到列表中

from fontTools.ttLib import TTFontfont = TTFont('./font/' + name[1] + '.woff')             # 加载字体文件 .woff后缀
uni_list = font['cmap'].tables[1].ttFont.getGlyphOrder()  # 取出映射编码保存到列表中


自定义所有汉字列表 并将其存储为json文件


接下来把两个表结合成字典 {编码:编码对应汉字,…}

再根据编码替换html中的每个节点信息,html的中的汉字就已经还原了。

接下来只需要自行解析并存储下来就可以。

项目github:https://github.com/sph116/dazhong_spiderhttps://github.com/sph116/dazhong_spider
我只是讲一下大体思路 实际上很多细节我没有一一解析。大家可以参照我的github,后续我将会单独写一篇文章,来讲解详细代码 欢迎交流

==以下是以”海底捞“关键词搜索为例(全国670家左右海底捞分店) 采集到的各个店铺多维数据展示 ==

大众点评列表页采集思路,破解字体文件反爬(包含项目github 可用时间至2020-01-21)相关推荐

  1. 大众点评店铺详情页评论采集(破解css文字映射反爬,包含项目github 可用时间至2020-01-21)

    在店铺详情页下拉 点击更多点评 才会进入真正的详情页. 在这个页面,使用的是css的文字映射反爬. 分析一下页面 可以看到部分评论的数据是缺失的,跟每个节点的class属性可能有关系 可以打开这个文件 ...

  2. 字体文件反反爬-- 起点中文网

    工作中遇到一个,以前没有遇到的问题是,网站把重要的数字都转换成 其他的东西 爬取网站https://book.qidian.com/info/1011454545 起点女生网 通过审查元素是这样的: ...

  3. 针对大众点评网上商铺评论字体替换反爬的反反爬

    针对大众点评网上商铺评论字体替换反爬的反反爬 字体替换的反爬,在之前网站出现过,如淘宝.猫眼等.但是主要针对于数字字体替换,由于数字就十个,完全可以手动分析字体文件,找出编码与数字的关系.但是,大众点 ...

  4. android自定义引导页,Android仿大众点评引导页(ViewPage)+主页面(Fragment)的实现

    大家好,今天主要是实现仿大众点评引导页和主页面以及城市定位的实现,主要使用ViewPager+Fragment+SharedPreferences,实现了第一次打开程序出现引导页,再次打开跳过引导页, ...

  5. Python3 实现大众点评网酒店信息和酒店评论的网页爬取

    **作者:**Mr. Ceong 链接:http://blog.csdn.net/leigaiceong/article/details/53188454 Python3 实现大众点评网酒店信息和酒店 ...

  6. 爬取拉钩 破解拉钩反爬机制

    破解拉钩反爬 实现爬取内容 拉钩的反爬很厉害 没毛病 老铁!! 我们现在来研究一下拉钩的请求头先 导入的有一个ip池(get_ip) ip池可以不写 用自己的也不会被封掉还有我是第一次写这些文章 给个 ...

  7. 破解js加密反爬综述

    破解js加密反爬综述 微信公众号:在敲代码啦 闲谈 上周发懒,没有更贴.结果一个小伙伴居然私我希望我周更帖,这个消息对我来说是莫大的鼓励.总是胡说八道的我居然得到了小伙伴的认可,这足以让我嘚瑟一整子. ...

  8. fontTools库来检测字体文件中是否包含某字符

    在使用字体渲染某些字符时,有可能渲染出空白或者"口"字形,原因在于该字体文件中不包含该字符的字形. 可能的原因包括: 字符不在字体的cmap表中(cmap表是字体文件声明的支持字符 ...

  9. 爬取大众点评22页餐馆名称

    首先,装入requests库和beautiful soup import requests from bs4 import BeautifulSoup 先爬取第一页的数据,将初始url设置为搜索页的第 ...

最新文章

  1. RandomAccessFile学习笔记
  2. Django里自定义用户登陆及登陆后跳转到登陆前页面的实现
  3. mysql异常修复_MySQL错误修复:Table xx is marked as crashed and last (automatic?) repair failed...
  4. python绘制剖面图_用python绘制剖面图
  5. 故障分析:数据库一致性关闭缓慢问题诊断
  6. Codeforces Educational Codeforces Round 3 D. Gadgets for dollars and pounds 二分,贪心
  7. 解决Error: ENOENT: no such file or directory, scandir ‘xxx\node-sass\vendor‘
  8. Chrome浏览器中比较实用的一些插件(文字复制、广告拦截、视频倍速、文献下载)
  9. 国产化性能最高的服务器,盘点服务器国产化呼声背后的优秀厂商
  10. 自己写了个cgi-bin,报错!
  11. 显示upnp服务器 sonos,四步解决UPNP功能被阻塞的问题
  12. Postman 接口神器
  13. (四)Android仿微信—仿QQ登陆
  14. 数据结构概述3 对称矩阵、树和二叉树
  15. 深入浅出TVS瞬态抑态二极管
  16. 仿大逃杀源码_破咒不是您的典型大逃杀
  17. HTML中的JavaScript——<script>
  18. MAC压缩的文件在win下减压出来是空文件夹
  19. ROS1学习笔记--xacro
  20. java se7 if_Java SE7新特性之在数值型的字面值中使用下划线

热门文章

  1. 超分辨率的国内外研究现状
  2. LocalDateTime 的用法
  3. eclipse插件集
  4. Delphi @ ^
  5. 无法下载eclipse || 下载eclipse被墙 的解决方案
  6. navigationController.navigationBar 设置背景透明
  7. C# .NET 解决提示“由于应用程序配置不正确,应用程序未能启动..”的错误
  8. 《wish官方运营手册》读书笔记
  9. 硕士论文重复率太高了怎么办
  10. WinForm在窗体中嵌入窗体