关于使用Scrapy的体会,最明显的感受就是这种模板化、工程化的脚手架体系,可以说是拿来即可开箱便用,大多仅需按一定的规则套路配置,剩下的就是专注于编写跟爬虫业务有关的代码。绝大多数的反反爬虫策略,大多有以下几种:

  • 忽略robots.txt协议
  • 添加随机请求头,如cookie、user-agent等
  • sleep休眠
  • 控制并发请求数、设置页面下载延迟
  • 验证码识别(靠谱)
  • 使用ip代理池(最靠谱)

文章的出发点是share本人使用scrapy爬取Boss和拉勾两个招聘网的一些实操总结经验。两个网站的网页结构不尽相同,好在需要及提取出的最终数据基本保持了一致,出于两个网站不同的反爬策略和请求配置(settings.py),因此对应实际的情况是两个Scrapy项目。

友情提醒,这里不介绍scrapy示例及完整代码(Tip: 下方贴有完整代码链接)。如文章标题描述的那样,由于拉勾和Boss都有各自不同的反爬策略,多少也限制了一些爬虫学习者的热情,包括我自身在内,不过多番尝试之后还是有收获的,跑的是定时计划,目前已入库的有近三万条数据。

进入正题,下面分别介绍拉勾网以及Boss直聘网岗位招聘数据的爬取心得,不过网站的反爬策略和网页结构随时都有发生变动的可能,因此还是需要根据实际情况进行再调整。本次分享的内容截止到2018年09月28日,在实际运行项目中依然生效。

拉勾

  • 关闭默认cookie(否则会跟请求头中的Cookie冲突),自定义请求headers并添加随机Cookie属性

    • settings.py中找到并设置COOKIES_ENABLED = False
    • 可以在spider代码中为Request手动添加headers,或者修改settings.py中的DEFAULT_REQUEST_HEADERS属性,或者编写自定义的HeadersMiddleware(继承DefaultHeadersMiddleware,重写process_request方法,别忘了配置)

拉勾网的cookie,用uuid随机生成即可,参考如下:

 def random_cookie():args = (uuid.uuid4(),) * 5cookie = 'user_trace_token={}; LGUID={}; JSESSIONID={}; LGSID={}; LGRID={}'.format(*args)return cookie
  • 控制并发请求数及设置下载延迟

settings.py中找到并设置如下,因此理论上一天可抓60/2 * 2 * 60 * 24 =86400条数据:

 # 当并发数和下载延迟均设置为2时,没有出现反爬限制(可多次尝试)CONCURRENT_REQUESTS = 2DOWNLOAD_DELAY = 2

补充:上述说明中,请求Cookie是必须要加的,否则会重定向到登录页面;在未使用ip代理的情况下,并发数不宜设置过大,亲测是直接封了IP…

Boss直聘

对比拉勾网,感觉直聘网的反爬策略会更加严格,不过抓慢一点还是可以的(这样理论上一天是60/5 * 1 * 60 * 24 =17280条数据)

  • 设置随机User-Agent(可能非必需)

  • 控制并发请求数、下载延迟

 # 这么慢还是被限制...CONCURRENT_REQUESTS = 1DOWNLOAD_DELAY = 5
  • 加入验证码识别

事实上,这种情况下限制后是被重定向到一个验证码页面。本人目前的解决方案是编写自定义的CustomRedirectMiddleware(继承RedirectMiddleware,重写process_response方法进行验证码识别[第三方API])

小结

分享的都是比较曲中的解决方案,不差钱的建议直接上ip代理(实测过免费的,别指望了)。

相关代码 - 拉勾
相关代码 - boss
欢迎关注我的个人公众号:超级码里奥
如果这对您有帮助,欢迎点赞和分享,转载请注明出处

爬虫进阶:Scrapy 抓取 boss 直聘、拉勾心得经验相关推荐

  1. 爬虫项目——Scrapy爬取Boss直聘

    Scrapy添加代理爬取boss直聘,并存储到mongodb 最终爬取截图 项目创建 items Spider Middleware添加ip代理 Pipeline添加mongodb存储 最终爬取截图 ...

  2. Python爬虫实战之二 - 基于Scrapy框架抓取Boss直聘的招聘信息

    Python爬虫实战之三 - 基于Scrapy框架抓取Boss直聘的招聘信息 ---------------readme--------------- 简介:本人产品汪一枚,Python自学数月,对于 ...

  3. python爬取boss直聘招聘信息_Python爬虫实战-抓取boss直聘招聘信息

    Python Python开发 Python语言 Python爬虫实战-抓取boss直聘招聘信息 实战内容:爬取boss直聘的岗位信息,存储在数据库,最后通过可视化展示出来 PS注意:很多人学Pyth ...

  4. python爬虫招聘-Python爬虫实战-抓取boss直聘招聘信息

    实战内容:爬取boss直聘的岗位信息,存储在数据库,最后通过可视化展示出来 PS注意:很多人学Python过程中会遇到各种烦恼问题,没有人帮答疑容易放弃.为此小编建了个Python全栈免费答疑.裙 : ...

  5. python抓取boss直聘招聘信息

    1.目前测试情况看只能抓取头3页,后续得重新换cookie抓取. 2.如果登录自己boss账户,有可能导致账户临时被封,测试情况是个人账户被封了一个小时. #!/usr/bin/python # -* ...

  6. boss直聘python_使用python抓取boss直聘岗位信息

    此文档,需要提前设置好google的webdriver. 抓取的信息会保存为xls表 可以替换url=参数来寻找不同岗位和地区:先打开boss直聘网站,然后根据自己想要查询的岗位进行搜索,再复制url ...

  7. 实战:利用requests库、lxml库的etree,采用xpath方法抓取boss直聘网岗位信息

    编写思路: 获取每个岗位的页面url. 进入url,获取需要的各项信息(岗位.工资.待遇). 保存成csv(保存的csv文件若想用excel打开且不出现乱码,需要在with open 中加入参数:en ...

  8. 爬取BOSS直聘信息并进行清理和可视化分析(python小白)

    年底了,学习数据分析快四个月了.为了尽快找到一份数据分析相关的工作,计划把BOSS直聘上的相关职位都爬取下来分析分析,也好检验一下最近的学习成果.python新手,代码写的乱,将就看吧.首先,对给BO ...

  9. python爬虫教程:Scrapy框架爬取Boss直聘网Python职位信息的源码

    今天小编就为大家分享一篇关于Scrapy框架爬取Boss直聘网Python职位信息的源码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 分析 使用Crawl ...

最新文章

  1. python 迭代器
  2. 基于HOG-LBP特征融合的头肩检测研究
  3. Fxx and game hdu 5945 单调队列dp
  4. OpenCV计算机视觉实战(Python版)_004图像形态学处理
  5. 力扣1103.分糖果
  6. mysql 5.7 plugin 安装_mysql5.7以上版本安装
  7. 读取xml并转换为Java对象
  8. Android带LOGO二维码生成
  9. TeamFlowy——结合Teambition与Workflowy
  10. eclipse工具按键翻译
  11. Linux(CentOS7)中如何安装QQ
  12. 格兰杰检验的基本步骤_如何用格兰杰检验、协整对数据进行分析_格兰杰因果检验...
  13. Docker 图片水印中文乱码显示为方框, 设置Docker容器字体
  14. python中lis的意思_Python语言入门(二)
  15. c# mysql登录界面_C#窗体控件与MySQL实现登录功能
  16. GIT客户端32位安装版Git-2.34.0-32-bit.exe
  17. mandatory参数的使用
  18. Druid 的 WallFilter 抛出 sql injection violation, comment not allow 问题的解决方法
  19. 一键生成PDF文档的书签和目录(书签,目录页带页码 都行)
  20. html5第十一课时,汇总

热门文章

  1. php.ini配置文件中文详细解释
  2. UE4构建光照后,BSP创建的静态网格变全黑
  3. 傅里叶变换复数形式的实部代表什么_「趣味数学」傅里叶变换及其在人工智能中的应用...
  4. MDN Web Docs
  5. 牛客每日练习----​​​​​​​最长回文,Alice和Bob赌糖果,N阶汉诺塔变形
  6. [IOS APP]小豆子幽默丛书
  7. 什么是跨境电商ERP?
  8. ES6基本的语法(十六) lterator
  9. 【文末送书】2022世界杯冠军预测,机器学习为你揭晓
  10. Camtasia Studio2021-激活码-序列号-秘钥中文版下载安装最新详情介绍