Python爬虫总结(附拉勾网多进程代理池爬虫)
一直秉承增量学习的策略,写了一些爬虫,还没有到需要scrapy的地步,爬取拉勾网遇到了瓶颈,因为反爬策略比较强,在此总结。
写过的东西
最近写的都放在了gayhub上:
包括有:获取代理池
、爬取bing图片
等等。
拉勾网爬虫
分为以下步骤:
- 获取所有板块url,存入mongoDB
- 在所需的url中,爬取所有的工作链接url,存入mongoDB
- 断点续传,多进程爬取所有储存的url中的信息,存入mongoDB
- 数据分析(待完成)
其中
断点续传的实现方式:
1 |
|
多进程使用Pool进程池:
1 |
|
代理测试使用telnet方法:
1 |
|
数据库计数器实时监测:
1 |
|
高级爬虫技术总结
高端反爬技巧:
- 校验 User-Agent(没用)
- 图片假链(人点不到,爬虫必中)
- 阶梯访问量控制
基于访问数量,人类的访问一般集中在短时间内大部分网页,爬虫是线性增长,可设置短期策略和长期策略识别非人类。
常见的反反爬技巧:
- User-Agent池
- Referer保持
- 代理池
- 图像识别验证码
- 登陆状态cookies保持
- 多账号反爬
- 分布式爬虫
- selenium
未来工作
重心主要在数据分析和机器学习上,爬虫如果再有接触的话,应当写一个自己的fetcher类,糅合代理、多线程、异步IO、断点续传等功能。
Python爬虫总结(附拉勾网多进程代理池爬虫)
http://example.com/posts/28976/