手把手教你用Python采集腾讯招聘数据

开发 后端
今天我们爬取腾讯招聘网站Python岗位的招聘信息。小伙伴们可以对Python岗位的岗位需求好好分析结合自身技术栈,最后希望大家都能找到好工作。

[[398305]]

本文转载自微信公众号「菜J学Python」,作者游世九黎 。转载本文请联系菜J学Python公众号。

大家好,我是J哥~(本文来自好友投稿)

今天我们爬取腾讯招聘网站Python岗位的招聘信息。如图所示:

然后还是先看一下最终的结果,我们保存到csv文件中。

爬取1000条数据,第一行是title:

老规矩,我们还是走流程。

01需求分析

抓取腾讯招聘网站Python相关岗位数据,打开目标网站,F12打开开发者工具,发现岗位信息不在网页源码中,很明显是在XHR中的json数据。

正好对应页面十条数据,接下来就好办了。

02发送请求

找到url的页面规律,

  1. 第一页url:https://careers.tencent.com/tencentcareer/api/post/Query?timestamp=1620561777984&countryId=&cityId=&bgIds=&productId=&categoryId=&parentCategoryId=&attrId=&keyword=python&pageIndex=1&pageSize=10&language=zh-cn&area=cn 

index参数对应值即为页码,所以循环得到url链。

  1. def getPage(self): 
  2.         url_list = [] 
  3.         for i in range(100): 
  4.             url = self.url.format(i + 1) 
  5.             url_list.append(url) 
  6.         return url_list 

03解析页面

得到url链之后我们循环遍历发起请求,得到json数据,将json数据转换成字典,并解析数据。

  1. for url in urlList: 
  2.  
  3.             resp = requests.get(url, headers=self.headers) 
  4.  
  5.             data = resp.content.decode('utf-8'
  6.  
  7.             dic_data = json.loads(data) 
  8.  
  9.             dic_data_list = dic_data["Data"]["Posts"
  10.  
  11.             for i in dic_data_list: 
  12.  
  13.                 work_list.append(i) 

这样就得到了岗位信息数据。

04保存数据

得到了岗位数据之后我们需要把它保存到本地,这里我们把数据保存到本地csv文件中。

  1. try: 
  2.             with open('Tx_work.csv''w', encoding='utf-8', newline=''as f: 
  3.                 writer = csv.DictWriter(f, self.title) 
  4.                 writer.writeheader() 
  5.                 writer.writerows(dic) 
  6.                 print('写入成功'
  7.         except Exception as e: 
  8.             print(e) 

05运行程序

  1. if __name__ == '__main__'
  2.     tx = Tx(base_url,hd,titles) 
  3.     tx.run() 

小伙伴们可以对Python岗位的岗位需求好好分析结合自身技术栈,最后希望大家都能找到好工作。

 

 

 

责任编辑:武晓燕 来源: 菜J学Python
相关推荐

2021-08-09 13:31:25

PythonExcel代码

2022-10-19 14:30:59

2020-03-08 22:06:16

Python数据IP

2021-02-02 13:31:35

Pycharm系统技巧Python

2021-12-11 20:20:19

Python算法线性

2022-08-04 10:39:23

Jenkins集成CD

2021-05-17 21:30:06

Python求均值中值

2009-04-22 09:17:19

LINQSQL基础

2012-01-11 13:40:35

移动应用云服务

2021-08-02 23:15:20

Pandas数据采集

2020-05-26 10:20:56

Python开发工具

2021-02-10 09:34:40

Python文件的压缩PyCharm

2011-03-28 16:14:38

jQuery

2021-02-06 14:55:05

大数据pandas数据分析

2021-02-04 09:00:57

SQLDjango原生

2017-10-29 21:43:25

人脸识别

2021-01-30 10:37:18

ScrapyGerapy网络爬虫

2022-03-29 11:11:11

TortoisGitGitee码云

2021-06-23 07:16:06

buildroot Linux内核根文件系统

2009-08-27 18:10:58

PHP绘制3D图形
点赞
收藏

51CTO技术栈公众号