破解拉钩反爬 实现爬取内容

    • 拉钩的反爬很厉害
    • 没毛病 老铁!!
    • 我们现在来研究一下拉钩的请求头先
    • 导入的有一个ip池(get_ip) ip池可以不写 用自己的也不会被封掉还有我是第一次写这些文章 给个 支持呗 谢谢 等我找到工作后 会继续写上爬抖音小视频、火山小视频、YouTube视频 这些东西已经写好来玩了
  • 觉得有帮助就点个呗 谢谢!

拉钩的反爬很厉害

我想 看这篇文章的时候 发现 只能爬取到5 6条数据就不能继续的爬取内容了 你是不是被坑了 哈哈 我之前也被坑了 一次 所以我认真的研究了一下拉钩的反爬机制 发现还真有点恶心 所以 我先晒图

我已经妥妥的爬到很多60多页 一点反爬都没有

我们再看数据库 我数据库 已经有几千条数据了

没毛病 老铁!!

我们现在来研究一下拉钩的请求头先

""Accept":"application/json","Accept-Encoding":"gzip, deflate, br","Accept-Language":"zh-CN,zh;q=0.9","Connection":"keep-alive","Host":"m.lagou.com","Cookie":"_ga=GA1.2.841469794.1541152606; user_trace_token=20181102175657-a2701865-de85-11e8-8368-525400f775ce; LGUID=20181102175657-a2701fbd-de85-11e8-8368-525400f775ce; index_location_city=%E5%B9%BF%E5%B7%9E; _gid=GA1.2.311675459.1542615716; _ga=GA1.3.841469794.1541152606; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1542634073,1542634080,1542634122,1542634128; JSESSIONID=ABAAABAAAGCABCC1B87E5C12282CECED77A736D4CD7FA8A; X_HTTP_TOKEN=aae2d9e96d6a68f72d98ab409a933460; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%221672c5c65c01c7-0e8e56366a6cce-3a3a5c0e-2073600-1672c5c65c3bf%22%2C%22%24device_id%22%3A%221672c5c65c01c7-0e8e56366a6cce-3a3a5c0e-2073600-1672c5c65c3bf%22%7D; sajssdk_2015_cross_new_user=1; _gat=1; LGSID=20181119231628-167f7db1-ec0e-11e8-a76a-525400f775ce; PRE_UTM=; PRE_HOST=; PRE_SITE=https%3A%2F%2Fm.lagou.com%2Fsearch.html; PRE_LAND=https%3A%2F%2Fm.lagou.com%2Fjobs%2F5219979.html; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6={timeStamp}; LGRID={time}-1c458fde-ec0e-11e8-895f-5254005c3644".format(timeStamp=timeStamp,time=time1),"Referer":"https://m.lagou.com/search.html","User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36","X-Requested-With":"XMLHttpRequest",

看着没毛病 但是 实际上 拉钩在cookie上做了一个反爬 可能因为太长 还没看到 但是 你可以看到 后面 实际上是有两个时间戳 是需要跟着时间走的 这是个关键!! 他们的反爬 不止有UA 还有cookie 验证
现在 我将所有的源码奉上

导入的有一个ip池(get_ip) ip池可以不写 用自己的也不会被封掉还有我是第一次写这些文章 给个 支持呗 谢谢 等我找到工作后 会继续写上爬抖音小视频、火山小视频、YouTube视频 这些东西已经写好来玩了

觉得有帮助就点个呗 谢谢!

import requests
from  lxml import etree
import pymongo
import time
import datetime
now = datetime.datetime.now()
timeStamp = int(now.timestamp()*1000)
geshi = "%Y%m%d%H%M%S"
time1 = datetime.datetime.strftime(now,geshi)from proxies import get_ip
import pymongo
import json
headers = {"Accept":"application/json","Accept-Encoding":"gzip, deflate, br","Accept-Language":"zh-CN,zh;q=0.9","Connection":"keep-alive","Host":"m.lagou.com","Cookie":"_ga=GA1.2.841469794.1541152606; user_trace_token=20181102175657-a2701865-de85-11e8-8368-525400f775ce; LGUID=20181102175657-a2701fbd-de85-11e8-8368-525400f775ce; index_location_city=%E5%B9%BF%E5%B7%9E; _gid=GA1.2.311675459.1542615716; _ga=GA1.3.841469794.1541152606; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1542634073,1542634080,1542634122,1542634128; JSESSIONID=ABAAABAAAGCABCC1B87E5C12282CECED77A736D4CD7FA8A; X_HTTP_TOKEN=aae2d9e96d6a68f72d98ab409a933460; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%221672c5c65c01c7-0e8e56366a6cce-3a3a5c0e-2073600-1672c5c65c3bf%22%2C%22%24device_id%22%3A%221672c5c65c01c7-0e8e56366a6cce-3a3a5c0e-2073600-1672c5c65c3bf%22%7D; sajssdk_2015_cross_new_user=1; _gat=1; LGSID=20181119231628-167f7db1-ec0e-11e8-a76a-525400f775ce; PRE_UTM=; PRE_HOST=; PRE_SITE=https%3A%2F%2Fm.lagou.com%2Fsearch.html; PRE_LAND=https%3A%2F%2Fm.lagou.com%2Fjobs%2F5219979.html; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6={timeStamp}; LGRID={time}-1c458fde-ec0e-11e8-895f-5254005c3644".format(timeStamp=timeStamp,time=time1),"Referer":"https://m.lagou.com/search.html","User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36","X-Requested-With":"XMLHttpRequest",
}city = "广州"
positionName = "python"
# pageNo = "1"
pageSize = "15"def get_detail_url(pageNo,proxies):base_url = "https://m.lagou.com/search.json?city={city}&positionName={positionName}&pageNo={pageNo}&" \"pageSize={pageSize}".format(city=city,positionName=positionName,pageNo=pageNo,pageSize=pageSize)res = requests.get(base_url,headers=headers,proxies=proxies)content = res.content.decode()dict1 = json.loads(content)# print(dict1)list1 = dict1['content']['data']['page']['result']for i in list1:yield "https://m.lagou.com/jobs/{}.html".format(i['positionId'])# 职位名称  薪资  工作地点  工作年限  学历要求 企业名字   职位描述
def parse_detail(url,proxies):# print(url)res = requests.get(url,headers=headers,proxies=proxies)content = res.content.decode()xml = etree.HTML(content)postitle = xml.xpath('//div[@class="postitle"]//h2[@class="title"]//text()') #职位名称salary = xml.xpath('//span[@class="item salary"]//span[@class="text"]//text()') # 薪资workaddress = xml.xpath('//span[@class="item workaddress"]//span[@class="text"]//text()') #工作地点workyear = xml.xpath("//span[@class='item workyear']//span//text()")  # 工作年限education=xml.xpath('''//span[@class='item education']//span[@class="text"]//text()''') #学历要求companyName=xml.xpath('//div[@class="dleft"]//h2//text()') # 公司名字detail = xml.xpath("//div[@class='content']/p//text()") #职位描述dict1 = {}# print(postitle)if len(postitle) != 0 :dict1['postitle']=postitle[0]dict1['salary']=salary[0]dict1['workaddress']=workaddress[0]dict1['workyear']=workyear[0]dict1['education']=education[0].strip()dict1['companyName']=companyName[0].strip()dict1['detail']=''.join(detail)  #将列表转化为一串字符串return dict1else:print('请求不到数据,重新请求 睡3秒')time.sleep(3)ip = get_ip()proxies = next(ip)parse_detail(url,proxies)def save_mongodb(dict1):print(dict1)client = pymongo.MongoClient('localhost', 27017)lagou_db = client.lagoulagou_db = lagou_db.lagoulagou_db.insert(dict1)print("保存数据库成功")def run():ip = get_ip()proxies1 = next(ip)proxies2 = next(ip)for i in range(100):print("开始爬取第{}页".format(i+1))for j,url in enumerate(get_detail_url(i,proxies1)):dict1 = parse_detail(url,proxies2)save_mongodb(dict1)print("爬取第{}页第{}条信息成功".format(i+1,j+1))print("已经爬取完")if __name__ == '__main__':run()

爬取拉钩 破解拉钩反爬机制相关推荐

  1. 从入门到入土:Python爬虫学习|实例练手|爬取百度翻译|Selenium出击|绕过反爬机制|

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  2. python爬取实习僧招聘信息字体反爬

    参考博客:http://www.cnblogs.com/eastonliu/p/9925652.html 实习僧招聘的网站采用了字体反爬,在页面上显示正常,查看源码关键信息乱码,如下图所示: 查看网页 ...

  3. python爬网络图片脚步_小白福利!跟着我的脚步!老司机带你爬取整站妹子图!反爬不存在-站长资讯中心...

    准备工作 工具:Python3.6.pycharm 库:requests.re.time.random.os 目标网站:妹子图(具体url大家自己去代码里看...) 在写代码之前 在我们开始写代码之前 ...

  4. Python爬取网易云音乐评论,反爬算啥啊!

    兴趣点: 这个网易云音乐的评论我早就想爬了,可惜技术不行,研究了两天的时间我终于用最简单的方法实现了网易云音乐评论的爬取,我以毛不易的<像我这样的人>为例来介绍一下 爬取网站: 虚假的爬取 ...

  5. Python爬虫:爬取instagram,破解js加密参数

    Python爬虫:爬取instagram,破解js加密参数 instagram 是国外非常流行的一款社交网站,类似的还有像facebook.twitter,这些社交网站对于掌握时事热点.电商数据来源和 ...

  6. 大众点评列表页采集思路,破解字体文件反爬(包含项目github 可用时间至2020-01-21)

    前言:最近想试试抓取大众点评数据,找了些开源代码发现基本上都用不了.自己写了一个能跑起来的项目,分享给大家,首先抓取"海底捞"店铺的列表页数据. 注意,大众点评的采集需要全程登录, ...

  7. 破解js加密反爬综述

    破解js加密反爬综述 微信公众号:在敲代码啦 闲谈 上周发懒,没有更贴.结果一个小伙伴居然私我希望我周更帖,这个消息对我来说是莫大的鼓励.总是胡说八道的我居然得到了小伙伴的认可,这足以让我嘚瑟一整子. ...

  8. 简单爬取微博评论详细解析,学习爬取ajax异步数据交换动态网页

    爬取微博评论详细解析,学习爬取ajax异步数据交换动态网页 1.什么是ajax异步数据交换网页 2.用到的工具模块和简单解释 3.网页内容解析 4.代码实现及解释 1.什么是ajax异步数据交换网页 ...

  9. python爬取京东评论怎么翻页_爬取京东网页评论(动态网页)

    1.当网页打开的方式不同时,在开发者选项找到的包含评论的文件地址不同,比如第一种,当我们找到的评论界面是含有下一页选项的时候(如下图).我们在左边文件界面发现包含评论的网页地址名字为''product ...

最新文章

  1. 微信小程序开发的快速步骤方法和最大的坑
  2. Oracle 中control_file_record_keep_time参数的解释
  3. Document Builder: replace variable guid in merge
  4. 安卓APP_ 布局(3) —— FrameLayout帧布局
  5. 在Anaconda中安装TensorFlow1.14.0与TensorFlow2.0.0
  6. echart x轴 倾斜_「技术帖」轮毂轴承单元轴铆合装配的铆头优化设计
  7. Speedment 简介
  8. 清华山维eps软件_6款倾斜摄影裸眼3D采集软件 | 推荐给大家
  9. Mozilla发布开发者专用浏览器Fx10
  10. 钉钉考勤报表生成工具
  11. AlphaGo论文的译文,用深度神经网络和树搜索征服围棋:Mastering the game of Go with deep neural networks and tree search
  12. linux创建777权限的文件,Linux文件夹权限777,无法创建文件
  13. 计算机科学与技术统考专业代码,考试类别和级别及专业及科目代码表.doc
  14. python dataframe 写入到doc文件_将Python Pandas DataFrame写入Word文档
  15. LaTeX中各种常用盒子的使用总结
  16. ·禅思·的寓意和思索
  17. python爬虫概述
  18. 爬虫进阶:反反爬虫技术--2 使用可变IP
  19. python 使用BeautifulSoup爬取天天基金网主要数据
  20. SqlSugar 首次使用以及遇到的问题

热门文章

  1. HDU - 2044一只小蜜蜂 一道递推题
  2. 基于FPGA的数字密码锁电路设计(含程序)
  3. Unity真实榴弹炮模拟(真正的大型榴弹炮实现)
  4. 1035 Password (20 分)
  5. php音视频边下边播,视频个别片段加旁白,就是我边播放视频边录制旁白或声音...
  6. Linux 内核启动过程--head.S(arch/xxx/kernel下的)
  7. 耐心,细心,贴心,静心
  8. PA=LU(带行交换的矩阵分解)
  9. JavaSE——数字格式化、产生随机数字、生成验证码
  10. cocos creater 鸿蒙 音频卡死 播放失败 不回调