Python爬虫实践(一) -- 社交网站用户信息爬取
系列文章: 最终可运行代码已上传:
爬虫项目目标
给一个某社交网站的用户ID,爬这个用户的所有内容:
过程原理分析
原理:并不用科学上网,只是理论层次的研究。
简单爬虫脚本:selenium即可。
爬虫框架:**中大量采用异步加载,如果简单收发包必定很多内容是解析不到的,因此这里需要一个JavaScript渲染引擎,这个引擎可以使用selenium + chrome(handless) 。
开发语言:python3 ,python在开发爬虫方面有独特的优势。
开发工具:pycharm, JB公司的pycharm几乎是Python IDE的首选。
程序具体步骤:用户登录。使爬虫保持登录状态。获取用户主页面。获取时间线信息。获取公共主页的发帖信息。获取好友信息。反爬虫的相关操作。
防止封号可以采取的措施:
1、减少并发数,设置发包延时
2、设置代 理 池
3、设置UA
4、设置多用户登录,通过从用户的登录cookie池中随机选取一个作为请求的cookie,在爬虫开始位置导入多个用户的用户名和密码信息,依次登录,登录成功后保存用户cookie到列表,后面每次发包前随机选取一个cookie
5、设置Reuqests函数的等待时间,减慢爬虫运行速度防止由于发包过快导致账号被封
最终实现代码
最终选择使用selenium来简单爬取。
问题:
测试时,各个标签元素定位的问题是关键,classname定位并不是一直有效的。
个人主页有数字id与英文 id之分。
公共主页与个人主页差异也很大。
数据过多时,比如好友列表与评论列表,需要考虑下拉刷新与AJAX异步加载的数据包。
另外,网络问题会导致页面加载问题,也会导致数据获取失败。
