携程旅游网/去哪儿旅游网信息分布式爬虫
所属公司:
上海驹信科技有限公司
项目描述:
使用技术及难点:Ubuntu、Scrapy框架、scrapy-redis分布式组件、Redis、selenium、IP代理
责任描述:
这个项目是对携程和去哪儿旅游网门票,机票,酒店信息进行抓取,采用scrapy-redis分布式实现。分布式使用Redis做为缓存数据库,利用Redis的高并发和I/O读写来实现高速下载。抓取过程中发现机票部分信息不存在于源码中,而是均为JS动态加载的,导致信息抓取不完整,故采用开启下载中间件,利用selenium + PhamtonJS的方式发送请求,待数据加载完毕后返回提取。过程中发现若访问过于频繁,将会被封IP,所以又加入了proxies池、IP代理功能。
2016/6―2017/11
知乎网 网易云音乐
所属公司:
上海驹信科技有限公司
项目描述:
爬取用户名,话题,评论,点赞数等。
使用技术及难点:session、post登陆、处理简单验证码
责任描述:
1.知乎需要用户先登陆,才能获取数据,并且登陆需要验证码。
2.首先寻找验证码的url并在程序中请求,获取到验证码这个图片后,如果验证码较简单可以用tesseract识别,若较复杂则编写程序手动输入验证码返回给程序。
3.使用requests模块,使用session.post构成含有账号密码验证码csrf的表单模拟登陆。
4.随后使用xpath爬取所需数据。
5.分析云音乐歌曲评论网页,发现数据可以通过json直接提取,不过云音乐登陆就相对简单,
使用requests.post直接带着浏览器中复制过来的formdata数据发送出去即可。
2016/6―2017/11
豆瓣电影 猫眼电影
所属公司:
上海驹信科技有限公司
项目描述:
爬取电影名、票房数、票价、评分等。
使用技术及难点:反反爬、tesseract识别、selenium实现动态加载
责任描述:
1.分析豆瓣的网页,发现数据可以通过json直接提取。
2.找到json数据的url,直接请求,用json模块转化数据,从中筛选想用的数据。
3.分析猫眼的票房页,发现票价,人气等数据,源代码中展示的并不是纯粹的数字。而是在页面使用了font-face定义了字符集,并通过unicode去映射展示。这种新型的web-font反爬虫机制,使用web-font从网络动态加载字体。
4.这种数据虽然特殊,但是其较为工整端正,轮廓清晰,背景不浑浊,因此我们可以采用Tesseract模块进行识别。
5.使用requests模块编写程序,加入Selenium+PhantomJS截取整个网页图片,并将需要的数据截取成一个个小图片,使用Tesseract进行识别输出数据。
6.将数据导出为csv类型,方便查看。