针对 Python-51job网页爬取-职位信息爬取
这篇博客,有博友表示写的不是很清楚,或者想爬取更具体的内容,这里给大家分享一下爬取51job网的具体教程和爬取职位的具体要求信息;
Python-51job网页爬取-职位信息爬取
一、分析网页结构
1、
图一
大家打开51job网
,搜索python
,就会出现很多的职位,我们使用F12查看源码,根据上图图一,我们可以看出每一个职位的内容都在一个div标签里面的,每一个div里面的内容格式都大尽相同,这样的格式会大大减小爬取难度;
大家可以尝试去爬取一下豆瓣网站的票房
数据,那个每一个都是不一样,格式相对较乱,爬取有一定的困难,但也不是不可进行爬取;
2、
这里我们就行web文本内容爬取,
try:
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'
}
response = requests.get(url, headers=headers) # 进行爬取
t = response.text#获取文本
#bs = etree.HTML(t)#将爬取的网页数据再生成标准网页格式数据
except Exception as error:
print(error)
我们查看我们爬取的文本信息;
print(t)
我们在我们爬取的文本信息中找到我们需要的信息的位置;
我们可以看见engine_search_result
里面的才是我们需要的内容,下面我们将他从文本信息中分离出来;
bs = etree.HTML(t)#将爬取的网页数据再生成标准网页格式数据
c = bs.xpath("//script[@type='text/javascript']")[2].text#找到所需信息的位置
op = eval(c[29:])['engine_search_result']#将str转化为字典,这样我们就可以很快找到我们需要的信息
这样我们根据字典里面的内容就可以获取到我们需要的信息;
3、
下面我们将进行爬取每一个职位,公司在招聘是所要的要求;
根据上面我们获取的字典里面我们可以找到``job_href```,这个就是职位的详细信息链接,
我们来分析职位详细信息网页里面的内容;
我们可以看到,这个和我们前面分析网页信息是一样的,
- 找到具体信息内容
- 找到信息所在的标签
- 往上,找到整个大标签
- 在根据大标签我们来一步一步找到具体位置
这里我想一定有人要问我们都找到他的具体位置了,为什么还要找他的大标签?
这是因为有的小标签的class名称是相同的,我们只有由上到下,一步一步找,相当于一个“绝对定位”
;
4、
爬取信息
"""
获取职位信息
"""
lp = [] #职位信息
try:
for i in l.xpath('//div[@class="bmsg job_msg inbox"]/p'):
if i.text==None:
pass
else:
lp.append(i.text.replace('\xa0'