如何用Python爬取boss直聘职业信息

环境准备

  1. Python 3.7
  2. Mysql
  3. requests
  4. PyMySQL
  5. BeautifulSoup

获取数据

分析数据请求过程

  1. 首先我们打开boss直聘网查看正常的请求过程

1579421064467-6e1a2f88-a622-4654-b573-72ec5d49ce4f.png

  1. 打开万能的 F12,刷新,查看下当前网络发生了什么

1579421171057-114697be-3982-47f6-884c-e5ef0c6d5543.png
通过上图能够看到请求参数中包含了职位,页数等信息。

构造模拟请求

import requests
url = "https://www.zhipin.com/c101120100/?query=" + kw+"&page="+str(page)+"&ka=page-"+str(page)
headers = {
   
    'Host': 'www.zhipin.com',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
    'Accept-Encoding': 'gzip, deflate, br',
    'Referer': 'https://www.zhipin.com/job_detail/?city=101120100&source=10&query=PHP',
    'DNT': '1',
    'Connection': 'keep-alive',
    'Cookie': '__c=1579400100; __g=-; __l=l=https%3A%2F%2Fwww.zhipin.com%2Fweb%2Fcommon%2Fsecurity-check.html%3Fseed%3DEWjlLZs%252FPr8cqa5Hs%252FGzdK13lMxlscxjvlJZWtdzaQs%253D%26name%3D986ad753%26ts%3D1579400102260%26callbackUrl%3D%252Fjob_detail%252F%253Fcity%253D101120100%2526source%253D10%2526query%253DPHP%26srcReferer%3D&r=&friend_source=0&friend_source=0; __a=83048337.1579400100..1579400100.11.1.11.11; __zp_stoken__=f0d1JSxtXmdA15ixnd1Lh9vbs1Yr2dghco%2FMt7MWfOXsroaplWan5qqBsdTxTRJMadp2RpuuULVCxSdPrFHXeLlCNNw5OdJC3nz6lIaV0p2mXbKx6jgrj3tQ4%2B4zcEDE2SBk',
    'Upgrade-Insecure-Requests': '1',
    'Cache-Control': 'max-age=0',
    'TE': 'Trailers'
}
r = requests.get(url, headers=headers)

所有请求头原封不动拷下来,放入 headerscookie 需要拷贝自己浏览器的内容,单独使用上面的会失效。

分析网页结构

解析出需要的信息。这一步我们用到了 BeautifulSoup
1579421520496-de1c119d-1a31-4f72-a510-8ed374232317.png
分析发现所有的职位都有类 job-primary

soup = BeautifulSoup(r.text, "lxml")
all_jobs = soup.select("div .job-primary")

继续分析
1579421733876-7a3092a5-96ad-4e78-89f8-61e2d8a66491.png
自此,基本信息获取完毕,下一步组装信息。

组装信息

for job in all_jobs:
    jname = job.find("div", attrs={
   "class": "job-title"}).text
    jurl = "https://www.zhipin.com" + \
    job.find("div", attrs={
   "class": "info-primary"}).h3.a.attrs['href']
    jid = job.find(
        "div", attrs={
   "class": "info-primary"}).h3.a.attrs['data-jid']
    sal = job.find("div", attrs
  • 6
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
你可以使用Python中的Requests和BeautifulSoup库来爬取Boss直聘的招聘信息。 首先,你需要打开Boss直聘的网站并搜索你感兴趣的职位。然后,你需要观察网页源代码,找到包含招聘信息的HTML元素。 下面是一个简单的代码示例,演示如何使用Python爬取Boss直聘的招聘信息: ```python import requests from bs4 import BeautifulSoup # 设置请求头部信息 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} # 搜索职位 job = 'Python爬虫' url = "https://www.zhipin.com/job_detail/?query=" + job + "&industry=&position=" res = requests.get(url, headers=headers) soup = BeautifulSoup(res.text, 'html.parser') # 解析招聘信息 job_list = soup.find_all('div', {'class': 'job-primary'}) for job in job_list: job_name = job.find('div', {'class': 'job-title'}).text company_name = job.find('div', {'class': 'company-text'}).a.text salary = job.find('span', {'class': 'red'}).text print(job_name, company_name, salary) ``` 在代码中,我们首先设置了请求头部信息,然后通过requests库向Boss直聘发送GET请求,并将响应解析为BeautifulSoup对象。接着,我们使用find_all()方法找到所有包含招聘信息的HTML元素,并从中提取出职位名称、公司名称和薪资等信息。最后,我们将爬取到的招聘信息进行输出。 注意:爬取网站时需要遵守网站的爬虫协议,防止被封IP。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值