该项目收集了一些各大网站登陆方式和一些网站的爬虫程序,有的是通过selenium登录,有的是通过抓包直接模拟登录,有的是利用scrapy,希望对Python初学者有所帮助,本项目用于研究和分享各大网站的模拟登陆方式和爬虫程序。
在该项目中,模拟登陆基本采用的是直接登录或者使用selenium+webdriver的方式,有的网站直接登录难度很大,比如qq空间和bilibili等,如果采用selenium就相对轻松一些。
虽然在登录的时候采用的是selenium,但为了效率,我们可以在登录过后得到的cookie维护起来,然后调用requests或者scrapy等进行数据采集,这样数据采集的速度可以得到保证。
目前已经完成的网站包含:Facebook、无需身份验证即可抓取Twitter前端API、微博网页版、知乎、QQZone、淘宝、Baidu、果壳、JingDong 模拟登录和自动申请京东试用、163mail、拉钩、Bilibili、豆瓣、Baidu2、猎聘网、微信网页版登录并获取好友列表、Github、爬取图虫相应的图片、网易云音乐、糗事百科。
测试
Bilibili自动登录测试正常,成功率98%
web微信
图虫Spider
淘宝web
taobao.py为模拟登录
剩下的文件为爬虫
新增链家Spider
1. 爬取淘宝各子标签,按销量排名商品信息,按分类保存至MongoDB
2. 通过pandas进行数据分析
3 .将商品在各省分布、销量排行、地图分布等通过matplotlib绘图显示
微博
sina.py为模拟登录
spider文件夹中为爬虫
1. 输入要爬取的博主ID,获取ajax请求
2. 解析json数据,爬取博主所有微博,保存至MySQL
网易云音乐
新增网易云音乐下载,之前的一个小demo应该还可以用,Crypto包应该挺难搞的,安装之后还是导入不了,推荐去百度一下,百度上的这个解决方法有很多。
知乎
知乎登录没有问题,不过要手动输入验证码。
知乎登录遇到“execjs._exceptions.ProgramError: TypeError: 'exports' 未定义”。
原因以及解决办法:
1. 由于是你本地的JScript引擎只有一个默认的JScript,所以会造成json未定义的错误。
2. execjs会自动使用当前电脑上的运行时环境
3. 解决办法:安装一个nodejs的V8引擎就可以了
对于该项目中存在的问题,作者表示:
关于验证码:本项目所用的方法都没有处理验证码,识别复杂验证码的难度就目前来说,还是比较大的。以我的心得来说,做爬虫最好的方式就是尽量规避验证码。
代码失效:由于网站策略或者样式改变,导致代码失效,请给我提issue,如果你已经解决,可以提PR,谢谢!
正在对部分代码进行优化。
项目地址: