下面是针对“Python爬取智联招聘数据分析师岗位相关信息的方法”的完整攻略:
准备工作
首先,我们需要安装Python相关库和组件。在这里,我们需要安装的库有如下几个:
- requests:用于发送HTTP请求和获取数据
- BeautifulSoup:用于HTML解析
- pandas:用于数据处理和分析
安装方式可通过pip直接安装,在命令行中执行:
pip install requests
pip install BeautifulSoup4
pip install pandas
分析网页结构
我们以“数据分析师”搜索结果为例。首先,我们先在智联招聘的搜索框中输入“数据分析师”,然后获取到搜索结果中每个岗位所对应的页面链接。
对于每个具体岗位的详细页面,我们可以从中提取我们所需要的信息,例如职位名称、公司名称、岗位描述等。
我们使用Chrome提供的开发者工具可以查看具体岗位页面的HTML结构,我们可以通过查看源代码和解析,来获取我们要的具体信息。
编写代码
有了以上的准备,我们现在就可以开始编写代码了。具体的思路如下:
1. 向智联招聘发送搜索请求,获得搜索结果页
2. 解析搜索结果页,获取每个具体岗位的url
3. 遍历每个具体岗位的url,爬取我们要的信息
4. 将爬取到的信息存储为CSV文件
以下是示例代码:
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 智联招聘搜索页面的url
url = "https://sou.zhaopin.com/?jl=530&kw=%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%B8%88&kt=3"
# 发送HTTP请求,获取网页
response = requests.get(url)
# 解析搜索结果页,获取搜索结果列表
def parse_search_page():
soup = BeautifulSoup(response.text, "html.parser")
job_results = soup.find_all("a", {"class": "zwmc"})
return job_results
# 遍历每个搜索结果,获取详细页面url
def parse_detail_url(job_results):
detail_urls = []
for job in job_results:
detail_url = job["href"]
detail_urls.append(detail_url)
return detail_urls
# 解析详细页面,获取我们所需要的信息
def parse_detail_page(detail_url):
detail_response = requests.get(detail_url)
detail_soup = BeautifulSoup(detail_response.text, "html.parser")
company = detail_soup.find("a", {"class": "com-name"})
job_name = detail_soup.find("h1", {"class": "name"})
job_desc = detail_soup.find("div", {"class": "tab-inner-cont"})
company_name = company.text.strip()
job_title = job_name.text.strip()
description = job_desc.text.strip()
return {"Company Name": company_name, "Job Title": job_title, "Description": description}
# 主流程
if __name__ == '__main__':
job_results = parse_search_page()
detail_urls = parse_detail_url(job_results)
job_infos = []
for url in detail_urls:
job_info = parse_detail_page(url)
job_infos.append(job_info)
df = pd.DataFrame(job_infos)
df.to_csv("job_infos.csv")
示例说明
这里给出两个针对不同需求的示例:
示例1:获取前5页数据分析岗位的详细信息
for i in range(5):
url = "https://sou.zhaopin.com/?jl=530&kw=%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90&kt=3&pageSize=60&start={}".format(i*60)
response = requests.get(url)
job_results = parse_search_page()
detail_urls = parse_detail_url(job_results)
job_infos = []
for url in detail_urls:
job_info = parse_detail_page(url)
job_infos.append(job_info)
df = pd.DataFrame(job_infos)
df.to_csv("job_infos_page_{}.csv".format(i), encoding='utf-8')
此示例中,我们循环遍历了前5页的数据分析岗位信息,获取详细页面上的关键信息并输出到相应的CSV文件中。
示例2:获取数据分析岗位的平均薪资信息
salary_list = []
for i in range(10):
url = "https://sou.zhaopin.com/?jl=530&kw=%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%B8%88&kt=3&pageSize=60&start={}".format(i*60)
response = requests.get(url)
job_results = parse_search_page()
detail_urls = parse_detail_url(job_results)
for url in detail_urls:
detail = parse_detail_page(url)
description = detail['Description']
if '薪' in description and '万' in description:
salary = description.split('薪')[1].split('万')[0].replace('-',',')
salary_list.append(float(max(salary.split(','))))
print('Average Salary:', sum(salary_list)/len(salary_list))
在此示例中,我们获取了前10页的数据分析岗位详细页,然后从中提取出薪资信息。利用简单的处理方法,我们计算出这些岗位的平均薪资水平。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python爬取智联招聘数据分析师岗位相关信息的方法 - Python技术站