网络上有形形色色的网站,不同类型的网站爬虫策略不同,难易程度也不一样。从是否需要登陆这方面来说,一些简单网站不需要登陆就可以爬,比如之前爬过的猫眼电影、东方财富网等。有一些网站需要先登陆才能爬,比如知乎、微信等。这类网站在模拟登陆时需要处理验证码、js 加密参数这些问题,爬取难度会大很多。费很大力气登陆进去后才能爬取想要的内容,很花时间。
是不是一定要自己动手去实现每一个网站的模拟登陆方法呢,从效率上来讲,其实大可不必,已经有前人替我们造好轮子了。
如果大家想找一个Python学习环境,可以加入我们的 Python学习[秋秋]圈:784758214
最近发现一个神库,汇总了数十个主流网站的模拟登陆方法:
-
知乎
-
微信网页版登录并获取好友列表
-
Bilibili
-
Facebook
-
无需身份验证即可抓取Twitter前端API
-
微博网页版
-
QQZone
-
CSDN
-
淘宝
-
Baidu
-
果壳
-
JingDong 模拟登录
-
163mail
-
拉钩
-
豆瓣
-
Baidu2
-
猎聘网
-
Github
-
爬取图虫相应的图片
-
网易云音乐
-
糗事百科
这些网站基本采用的是直接登录或者 selenium+webdriver 方式。每一个网站都有完整的模拟登陆代码,拿来就可以用到自己的爬虫中。
下面我们来测试一下。
先说说很难爬的「知乎」,假如我们想爬取知乎主页的 HTML 内容,就必须要先登陆才能爬,不然看不到这个界面。下面来简单梳理一下流程。
知乎需要手机号才能注册登陆。为了方便测试,可以随便找个手机号
顺利登录后就可以进入主页了。
下面,我们用这个库提供的代码来模拟登陆,输出主页 HTML 内容作测试。操作很简单,只需要输入手机号、密码和验证码就可以了。
成功登陆后,接下来就可以做一些有意思的事了。比如曾有人爬取所有知乎账号的信息,分析了知乎用户群体画像。
是不是有点意思。
再来看看微信。用上面的微信代码可以把全部微信好友信息爬取下来,比如:昵称、性别、地域、个性签名。接着可以分析一下你的朋友圈是什么样的,应该会很有趣。
还可以爬 B 站:
还可以爬链家租房信息:
还有很多实用有趣的内容,就不一一罗列了,感兴趣的话可以试试
GitHub 库地址: