前言
今天给大家介绍的是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 [200]> 获取服务器给我们响应数据
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如何获取如图所示
结果展示
本篇介绍了主要使用 requests
模块来请求数据,使用起来也是非常简单感兴趣的可以自己尝试一下。
如果你对Python感兴趣的话,可以试试我整理的这份Python全套学习资料,微信扫描下方二维码免费领取
(需要文章中的源码也可以添加领取~)
包括:Python永久使用安装包、Python web开发,Python,Python数据分析,人工智能、机器学习等学习教程。带你从零基础系统性的学好Python!
零基础Python学习资源介绍
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python学习软件
工欲善其事,必先利其器。学习Python常用的开发软件都在这里了!
三、Python入门学习视频
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
四、Python练习题
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
五、Python实战案例
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。这份资料也包含在内的哈~
六、Python面试资料
我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
七、资料领取
上述完整版Python全套学习资料已经上传CSDN官方,需要的小伙伴可自行微信扫描下方CSDN官方认证二维码输入“领取资料”免费领取!!