Python多线程爬取腾讯招聘信息

本文介绍了使用Python进行多线程爬取腾讯招聘网站技术类板块的招聘信息。通过网页分析找到真实请求地址,解析JSON数据获取工作名称、地点和内容,并利用多线程提高爬取效率,最终实现快速获取993条职位信息。
摘要由CSDN通过智能技术生成

网页分析

在这里插入图片描述
技术类板块下招聘信息共有300多页,每页10条信息,主要获取的信息是工作名称、地点、内容等。

找到真实请求地址

以技术类板块为例,其地址如下:

https://careers.tencent.com/search.html?pcid=40001

如果直接去请求这个地址,会发现并没有我们想要的职位信息等内容,因此需要通过抓包找到真实的请求地址,通过对XHR进行筛选,很容易就找到了真实的请求地址。
在这里插入图片描述
真实请求地址:https://careers.tencent.com/tencentcareer/api/post/Query?timestamp=1609576386939&countryId=&cityId=&bgIds=&productId=&categoryId=&parentCategoryId=40001&attrId=&keyword=&pageIndex=1&pageSize=10&language=zh-cn&area=cn

通过对比分析,发现这一长串网址中只有两个参数是变动的,一个是时间戳timestamp,一个是请求页数pageIndex,因此我们只需要把这两个参数传入网址中,即可实现自动翻页。

TIME_STAMP = int(round(time.time() * 1000))
PAGE_INDEX = 100
for index in range(1, PAGE_INDEX):
	url = f'https://careers.tencent.com/tencentcareer/api/post/Query?timestamp={TIME_STAMP}&countryId' \
	f'=&cityId=&bgIds=&productId=&categoryId=40001001,40001002,40001003,40001004,40001005,' \
	f'40001006&parentCategoryId=&attrId=&keyword=&pageIndex={index}&pageSize=10&language=zh-cn' \
	f'&area=cn '
	URL_QUEUE.put(url)

为了实现多线程,将每页URL生成后放入到队列中。

内容获取

这里我们主要获取的信息是工作名称、地点、内容,请求返回的数据通过json加载成dict数据类型后,就很容易获取到想要的信息了。

res = requests.get(self.url_queue.get()).content
            text = json.loads(res)
            for info in text['Data'
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值