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