前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >某招聘网站招聘信息的爬取

某招聘网站招聘信息的爬取

原创
作者头像
小明要加油
发布2023-05-10 00:05:34
5230
发布2023-05-10 00:05:34
举报
文章被收录于专栏:自学的专栏自学的专栏

目标网站:拉某招聘

实现目标:爬取指定职业指定地区的岗位信息,以及薪资情况

1、网页分析

当我们打开网页以后,使用开发者工具,使用定位工具,查看我们所要获取的数据信息是动态加载的还是写在源码中的,我们随便选择一个职业,能够看到我们所要获取的基础信息是写在源码中的一个个div节点下的

那么我们只需要找到正确的类和节点顺序就能用xpath爬取数据信息了

代码语言:javascript
复制
url = 'https://www.lagou.com/wn/jobs?pn=1&cl=false&fromSearch=true&city=%E5%8C%97%E4%BA%AC&kd=Python'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36',
                'Cookie':,
                'Host':'www.lagou.com',
                'Referer':'https://www.lagou.com/common-sec/security-check.html?seed=37CCCED5FE96E9EB070B6942A0C7C31EC256EE7F98EBBC184C8BD2FC69726FE680AC871919B75C4086A8FAE59F4109B1&ts=16836359419409&name=382d3b93f570&callbackUrl=https%3A%2F%2Fwww.lagou.com%2Fwn%2Fjobs%3Fkd%3DPython%26city%3D%25E6%2588%2590%25E9%2583%25BD&srcReferer=https%3A%2F%2Fwww.lagou.com%2Futrack%2FtrackMid.html%3Ff%3Dhttps%253A%252F%252Fwww.lagou.com%252Fwn%252Fjobs%253Fkd%253DPython%2526city%253D%2525E6%252588%252590%2525E9%252583%2525BD%26t%3D1683635940%26_ti%3D1',
                      }
res = requests.get(url,headers=headers)
html = etree.HTML(res.text)

我们打印Html可以看到,我们所需要的数据的确是写在源码中的

获取我们所需要的职业信息

代码语言:javascript
复制
title = html.xpath('//*[@id="jobList"]//a[@id="openWinPostion"]/text()')
price = html.xpath('//*[@id="jobList"]//div[1]/div/div[2]/span/text()')
company_name = html.xpath('//*[@id="jobList"]//span/div/div[2]/text()')

这样我们就能获取一页岗位的信息了,那么我们如何实现多页的数据爬取呢

当我们多浏览几页数据,我们可以发现翻页的机密就藏在url之中,每一页的url的不同之处在于pn参数的不同,找到了不同之处,我们就有相应的解决办法了。

我之前看过很多大佬在处理这个问题时是用的for循环,然后把网页链接写在循环当中,如下代码块所示:

代码语言:javascript
复制
for i in range(1,5):
    url = f'https://www.lagou.com/wn/jobs?pn={i}&cl=false&fromSearch=true&city={city_name}&kd=Python'

然后再请求数据,但是不知道为什么我在爬取房XX房源网站的时候这样写,最后真正爬取到的网页只有一页,有知道原因的大佬可以在评论区帮我解个惑。本文这样写是可以请求到数据的

我们可以在代码的开头写入input函数,因为网页的链接有pn、city、kd三个参数,他们分别对应着页码信息、城市信息

、职业信息,我们可以手动输入想要获取的职业或者城市,这样我们就能爬取到我们想要的数据了,后续会针对爬取到的信息进行数据分析。

2、全部代码

代码语言:javascript
复制
# -*- coding: utf-8 -*-
import csv
import requests
from lxml import  etree
# occupation = input('要爬取的岗位名称:')
city_name = input('要爬取的城市名称是:')
# 爬取一页数据
for i in range(1,6):
    # https://www.lagou.com/wn/jobs?cl=false&fromSearch=true&city=%E5%8C%97%E4%BA%AC&kd=Python&pn=1
    # url = f'https://www.lagou.com/wn/jobs?cl=false&fromSearch=true&city={city_name}&kd=Python&pn={i}'
    url = f'https://www.lagou.com/wn/jobs?pn={i}&cl=false&fromSearch=true&city={city_name}&kd=Python'
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36',
                'Cookie':,
                'Host':'www.lagou.com',
                'Referer':'https://www.lagou.com/common-sec/security-check.html?seed=37CCCED5FE96E9EB070B6942A0C7C31EC256EE7F98EBBC184C8BD2FC69726FE680AC871919B75C4086A8FAE59F4109B1&ts=16836359419409&name=382d3b93f570&callbackUrl=https%3A%2F%2Fwww.lagou.com%2Fwn%2Fjobs%3Fkd%3DPython%26city%3D%25E6%2588%2590%25E9%2583%25BD&srcReferer=https%3A%2F%2Fwww.lagou.com%2Futrack%2FtrackMid.html%3Ff%3Dhttps%253A%252F%252Fwww.lagou.com%252Fwn%252Fjobs%253Fkd%253DPython%2526city%253D%2525E6%252588%252590%2525E9%252583%2525BD%26t%3D1683635940%26_ti%3D1',
                      }
    # //*[@id="jobList"]//a[@id="openWinPostion"]/text()
    # //*[@id="openWinPostion"]
    res = requests.get(url,headers=headers)
    html = etree.HTML(res.text)
    title = html.xpath('//*[@id="jobList"]//a[@id="openWinPostion"]/text()')
    price = html.xpath('//*[@id="jobList"]//div[1]/div/div[2]/span/text()')
    company_name = html.xpath('//*[@id="jobList"]//span/div/div[2]/text()')
    print(title)
    with open(f'./{city_name}招聘信息.csv','a',encoding='utf-8')as f:
        title_d = csv.writer(f)
        title_d.writerows(title+price+company_name)
        print('爬取成功!!!!!!')

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档