Python爬虫实战,requests+time模块,爬取某招聘网站数据并保存csv文件(附源码)
创始人
2024-04-20 15:56:47
0

前言

今天给大家介绍的是Python爬取某招聘网站数据并保存本地,在这里给需要的小伙伴们代码,并且给出一点小心得。

首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这样的纯文
本数据爬取的人会很多,所以我们需要考虑更换代理IP和随机更换请求头的方式来对招聘网站数据进行爬取。

在每次进行爬虫代码的编写之前,我们的第一步也是最重要的一步就是分析我们的网页。

通过分析我们发现在爬取过程中速度比较慢,所以我们还可以通过禁用谷歌浏览器图片、JavaScript等方式提升爬虫爬取速度。

招聘

开发工具

Python版本: 3.8

相关模块:

requests模块

csv模块

time模块

代码

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

思路分析

浏览器中打开我们要爬取的页面
按F12进入开发者工具,查看我们想要的招聘数据在哪里
这里我们需要页面数据就可以了

源代码结构

代码实现

f = open('招聘数据.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['标题','地区','公司名字','薪资','学历','经验','公司标签','详情页',
])csv_writer.writeheader() # 写入表头
for page in range(1, 31):print(f'------------------------正在爬取第{page}页-------------------------')time.sleep(1)# 1. 发送请求#url = 'https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false'url = 'https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false'# headers 请求头 用来伪装python代码, 防止被识别出是爬虫程序, 然后被反爬# pycharm里面 先全部选中 按住 ctrl +R 用正则表达式命令 批量替换数据# cookie: 用户信息, 常用于检测是否有登陆账号# referer: 防盗链, 告诉服务器我们请求的url地址 是从哪里跳转过来的 (动态网页数据 数据包 要比较多)# user-agent: 浏览器的基本标识headers = {'cookie': '你的Cookie','referer': 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=','user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',}data = {'first': 'false','pn': page,'kd': 'python','sid': 'bf8ed05047294473875b2c8373df0357'}# response 自定义变量 可以自己定义   获取服务器给我们响应数据response = requests.post(url=url, data=data, headers=headers)# 200 状态码标识请求成功# print(response.text) # 获取响应体的文本数据 字符串数据类型# print(type(response.text))# print(response.json()) # 获取响应体的json字典数据 字典数据类型# print(type(response.json()))#  2. 获取数据# print(response.json())# pprint.pprint(response.json())#  3. 解析数据 json数据最好解析 非常好解析, 就根据字典键值对取值# 根据冒号左边的内容, 提取冒号右边的内容result = response.json()['content']['positionResult']['result']# 列表数据类型, 但是这个列表里面的元素, 是字典数据类型# pprint.pprint(result)# 循环遍历  从 result 列表里面 把元素一个一个提取出来for index in result:# pprint.pprint(index)# href = index['positionId']href = f'https://www.lagou.com/jobs/{index["positionId"]}.html'dit = {'标题': index['positionName'],'地区': index['city'],'公司名字': index['companyFullName'],'薪资': index['salary'],'学历': index['education'],'经验': index['workYear'],'公司标签': ','.join(index['companyLabelList']),'详情页': href,}# ''.join() 把列表转成字符串 '免费班车',csv_writer.writerow(dit)print(dit)

Cookie如何获取如图所示

Cookie

结果展示

结果展示

最后

为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。

里面有适合小白新手的Python实战教程给到大家~

快来和小鱼一起成长进步吧!

① 100+多本PythonPDF(主流和经典的书籍应该都有了)

② Python标准库(最全中文版)

③ 爬虫项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...