请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

拉勾网站爬取

拉钩网站爬取思路

  1. 用requests.session() 获取到所有城市的名称 然后请求具体的每个城市
  2. 发现招聘信息在"https://www.lagou.com/jobs/positionAjax.json?px=default&city=%s&needAddtionalResult=false" % city 但是请求这个是带上了cookie的 而cookie的来源是在请求每个具体的城市url
    所以先请求 https://www.lagou.com/jobs/list_python/p-city_%s?px=default
    在请求 “https://www.lagou.com/jobs/positionAjax.json?px=default&city=%s&needAddtionalResult=false” % city
    在过程中遇到referer反扒 加上referer之后 ip限制 改用ip代理
    存入数据库
    图片描述
  3. 发现爬虫进行到中途会莫名停止 应该是城市太多的原因(360个)
    而且还没有我写死一个城市或者二个城市爬取的数据量大(有些偏僻城市)。发现偏僻城市会用一些上海 广州 等大城市页面数据来进行替换 然后就测试
    city_list = [“宁波”, “常州”, “沈阳”, “石家庄”, “昆明”, “南昌”,
    “南宁”, “哈尔滨”, “海口”, “中山”, “惠州”, “贵阳”, “长春”, “太原”, “嘉兴”, “泰安”, “昆山”, “烟台”, “兰州”, “泉州”] 少量城市 是能爬取下来的

想问下老师出现这种不报错 但是中途出现停止情况的原因是啥 是因为服务端限制了请求的次数吗?还有就是只要我一改用多进程 程序马上停止 不会报错 也不知道为什么。

正在回答 回答被采纳积分+3

1回答

bobby 2020-08-22 10:47:47

https://stackoverflow.com/questions/28169756/how-to-get-the-number-of-requests-in-queue-in-scrapy 你可以看看这个 你可以在每次enqueue_request的地方写一段代码 每次入队列的时候看看现在还有多少数据待抓取 就能看出是否是确实这个策略没有数据待抓取了 

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号