之所以标题不说是爬什么网,主要是怕大家看了标题以为是之前那篇的返稿。其实不是啊。
这次爬的是腾讯的暑期实习招聘。
上次爬完之后放那边也没去更新过,今天再上去看,发现人家已经改版了。
不知道为啥啊,就喜欢爬他们家的,还有爬CSDN的。
那,这次改版,数据是好爬了呢,还是难爬了呢?拭目以待啊(好爬我就不写了,难爬我就写不了)
这不废话嘛,不打开网站怎么分析嘛。
不知道是不是我网络不太行,打开这个网址,有时候可以,有时候就是白屏。
所以爬不下来不用担心是被封了IP,可能是真的卡,缓缓再来就好。
进去之后,你随便点,你会发现点来点去就是那一个网址,开心吧。
我的第一反应就是网页渲染。很抱歉这个系列没有提到网页渲染以及解决方法,因为我也不会啊。。。
毕竟我是个学后端的。
当时心里拔凉拔凉的,当时我还是不死心,点开了网页源码:
好样儿的。
当我把这句拿去百度的时候:href="javascript:;"
,网上的回复清一色都是用自动化测试工具去弄吧(selenium之类)。
为什么心里会凉呢?因为我觉得,这些模块,应该是一个模块一个数据包吧!!!
给我看傻了都,四个大label,每个大label里面还有好几个小label,然后小label里面还有下拉框,我的天哪!!!
就在我绝望之际,我还是点开了它的数据包,我想,就让我最后看一眼吧,我的天哪。
好,这么一看,就一个大label一个包?这么多数据就一个包?好极。
死灰复燃了。
在这方面,我不得不说,火狐还是有它的优势在里面的,看一下:技术类岗位数据包
这是火狐的。
跟网页对比一下,来看里面的那些元素分别是什么意思吧。
可以看到,所有的数据都在 JoinResultDtoList 里面,
(这里记得把转义字符自行转换)
title:岗位方向
rrCount:投递录用比
desc:岗位描述
request:岗位需求
workcity:据我分析啊,是这个样子的:
1、深圳总部
2、北京
3、上海
4、广州
5、成都
8、合肥
11、杭州
招聘城市:远程
其他三个包我都看过了,各位自取咯。
接下来,就是把数据拿下来处理了(简陋了点,我得去休息了):
import requests
import json
user_agent=[
# 请自己放上十几个头
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0'
]
list_urls=[]
def geturl():
page = requests.get("https://join.qq.com/api/v1/jobDetails/getJobDetailsByPidAndTid?timestamp=1611742780882&pid=2&tid=2")
html = page.text
print(type(html))
jhtml = json.loads(html)
print(jhtml['data'])
print(type(jhtml))
for data in jhtml['data']:
print(data)
geturl()
各位尽请发挥。
整完之后记得存起来,可以参照我pandas的第二篇:pandas做数据存储
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。