写一个爬取拉勾大数据岗位信息的爬虫,要求采取一定反爬措施

时间: 2024-02-26 10:55:54 浏览: 26
好的,以下是一个可以避免被拉勾反爬虫机制拦截的示例代码: ```python import requests import json import time from fake_useragent import UserAgent # 设置请求参数,可以自行更改 params = { 'city': '全国', 'needAddtionalResult': 'false', 'isSchoolJob': 0 } # 设置请求头信息 headers = { 'User-Agent': UserAgent().random, 'Referer': 'https://www.lagou.com/jobs/list_%E5%A4%A7%E6%95%B0%E6%8D%AE?labelWords=&fromSearch=true&suginput=', 'Origin': 'https://www.lagou.com', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'X-Anit-Forge-Code': '0', 'X-Anit-Forge-Token': 'None', 'X-Requested-With': 'XMLHttpRequest' } cookies = { 'user_trace_token': '20180920153734-45f1f8b8-bdca-11e8-bb9f-525400f775ce', 'LGUID': '20180920153734-45f1fbff-bdca-11e8-bb9f-525400f775ce', 'JSESSIONID': 'ABAAABAACDBABJB3FA1A09C4B08C5E2C8B8F7BDD6D3F11A', '_gat': '1', 'PRE_UTM': '', 'PRE_HOST': '', 'PRE_SITE': 'https%3A%2F%2Fwww.lagou.com%2F', 'PRE_LAND': 'https%3A%2F%2Fwww.lagou.com%2F', '_gid': 'GA1.2.1630791676.1537426655', 'index_location_city': '%E5%85%A8%E5%9B%BD', 'TG-TRACK-CODE': 'index_navigation', '_ga': 'GA1.2.2005406544.1537426655', 'LGRID': '20180920164319-5d5c3a5d-bdd0-11e8-bb9f-525400f775ce' } # 发送请求并获取响应内容 def get_page(page): data = { 'pn': str(page), 'kd': '大数据' } try: response = requests.post('https://www.lagou.com/jobs/positionAjax.json', headers=headers, params=params, data=data, cookies=cookies, timeout=10) if response.status_code == 200: content = response.content.decode('utf-8') result = json.loads(content) if result['success']: return result except requests.exceptions.RequestException as e: print('请求出错') return None # 打印岗位信息 def parse_result(result): for job in result['content']['positionResult']['result']: print('职位名称: ', job['positionName']) print('公司名称: ', job['companyFullName']) print('工作地点: ', job['city']) print('薪资范围: ', job['salary']) print('发布时间: ', job['createTime']) print('------------------------------------') # 主函数 def main(): for page in range(1, 10): result = get_page(page) if result: parse_result(result) time.sleep(5) if __name__ == '__main__': main() ``` 在该代码中,采取了以下几个反爬措施: 1. User-Agent随机生成,避免使用相同的User-Agent; 2. Referer设置为请求的来源页面,避免Referer与请求页面不符; 3. Origin设置为请求的来源域名,避免Origin与请求域名不符; 4. 设置X-Anit-Forge-Code和X-Anit-Forge-Token,避免被防伪系统拦截; 5. 设置cookies,模拟登录状态; 6. 设置请求超时时间,防止请求长时间无响应; 7. 发送请求时添加延时,避免请求过于频繁。

相关推荐

最新推荐

recommend-type

基于python的百度迁徙迁入、迁出数据爬取(爬虫大数据)(附代码)

这张图里表是我的家乡泉州一月、二月一共两个月的迁出数据,左边第一列是全国所有城市的编码(身份证前6位,这也和爬取百度迁徙url要求的编码一样),左边第二列是全国所有城市的名称,第一行是日期。为什么我要把表...
recommend-type

Python爬虫实例——scrapy框架爬取拉勾网招聘信息

主要介绍了Python爬虫实例——scrapy框架爬取拉勾网招聘信息的相关资料,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
recommend-type

python实现网络爬虫 爬取北上广深的天气数据报告 python.docx

该资源是python实现网络爬虫 爬取北上广深的天气数据的报告 注:可用于期末大作业实验报告
recommend-type

Python爬取当当、京东、亚马逊图书信息代码实例

主要介绍了Python爬取当当、京东、亚马逊图书信息代码实例,具有一定借鉴价值,需要的朋友可以参考下。
recommend-type

Python爬虫实例_城市公交网络站点数据的爬取方法

下面小编就为大家分享一篇Python爬虫实例_城市公交网络站点数据的爬取方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

HSV转为RGB的计算公式

HSV (Hue, Saturation, Value) 和 RGB (Red, Green, Blue) 是两种表示颜色的方式。下面是将 HSV 转换为 RGB 的计算公式: 1. 将 HSV 中的 S 和 V 值除以 100,得到范围在 0~1 之间的值。 2. 计算色相 H 在 RGB 中的值。如果 H 的范围在 0~60 或者 300~360 之间,则 R = V,G = (H/60)×V,B = 0。如果 H 的范围在 60~120 之间,则 R = ((120-H)/60)×V,G = V,B = 0。如果 H 的范围在 120~180 之间,则 R = 0,G = V,B =
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。