Python爬虫小例子——爬取51job发布的工作职位
本文将介绍如何使用Python爬虫爬取51job发布的工作职位,并提供两个示例。
爬取51job发布的工作职位
51job是国内知名的招聘网站,提供了大量的工作职位信息。我们可以使用Python爬虫爬取51job发布的工作职位,并将其保存到本地文件中。下面是爬取51job发布的工作职位的步骤:
1. 分析网页结构
首先,我们需要分析51job网页的结构,确定需要爬取的信息。打开51job网站,搜索关键词,如“Python开发工程师”,然后按照要求筛选,如“工作经验1-3年”,“学历本科”,“公司性质不限”,“公司规模不限”,“发布时间最近一个月”,最后点击搜索按钮。
在搜索结果页面中,我们可以看到每个工作职位的信息,包括职位名称、公司名称、工作地点、薪资、发布时间等。我们需要爬取的信息包括职位名称、公司名称、工作地点、薪资和发布时间。
2. 编写爬虫代码
在分析完网页结构后,我们可以编写Python爬虫代码来爬取51job发布的工作职位。下面是一个爬取51job发布的工作职位的示例:
import requests
from bs4 import BeautifulSoup
url = 'https://search.51job.com/list/010000,000000,0000,00,9,99,Python,2,1.html'
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'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
job_list = soup.find_all('div', class_='el')
for job in job_list:
job_name = job.find('a', target='_blank').text.strip()
company_name = job.find('span', class_='t2').text.strip()
location = job.find('span', class_='t3').text.strip()
salary = job.find('span', class_='t4').text.strip()
publish_time = job.find('span', class_='t5').text.strip()
print(job_name, company_name, location, salary, publish_time)
在上面的代码中,我们首先导入requests库和BeautifulSoup库,然后定义一个URL和请求头headers。接着,我们使用requests库的get()方法发送HTTP请求,并将响应保存在response变量中。最后,我们使用BeautifulSoup库解析HTML文档,并使用find_all()方法查找所有工作职位的信息。最后,我们使用for循环遍历每个工作职位的信息,并使用find()方法查找职位名称、公司名称、工作地点、薪资和发布时间。
3. 运行爬虫代码
在编写完爬虫代码后,我们可以使用Python解释器运行代码,并查看爬取的结果。下面是一个运行爬虫代码的示例:
python job_spider.py
在上面的代码中,我们使用Python解释器运行job_spider.py文件,并查看爬取的结果。
示例
下面是两个爬取51job发布的工作职位的示例:
示例一:爬取Python开发工程师工作职位
我们可以使用Python爬虫爬取51job发布的Python开发工程师工作职位,并将其保存到本地文件中。下面是一个爬取Python开发工程师工作职位的示例:
import requests
from bs4 import BeautifulSoup
url = 'https://search.51job.com/list/010000,000000,0000,00,9,99,Python,2,1.html'
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'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
job_list = soup.find_all('div', class_='el')
with open('job.txt', 'w', encoding='utf-8') as f:
for job in job_list:
job_name = job.find('a', target='_blank').text.strip()
company_name = job.find('span', class_='t2').text.strip()
location = job.find('span', class_='t3').text.strip()
salary = job.find('span', class_='t4').text.strip()
publish_time = job.find('span', class_='t5').text.strip()
f.write(f'{job_name}\t{company_name}\t{location}\t{salary}\t{publish_time}\n')
在上面的代码中,我们使用Python爬虫爬取51job发布的Python开发工程师工作职位,并将其保存到本地文件job.txt中。
示例二:爬取Java开发工程师工作职位
我们可以使用Python爬虫爬取51job发布的Java开发工程师工作职位,并将其保存到本地文件中。下面是一个爬取Java开发工程师工作职位的示例:
import requests
from bs4 import BeautifulSoup
url = 'https://search.51job.com/list/010000,000000,0000,00,9,99,Java,2,1.html'
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'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
job_list = soup.find_all('div', class_='el')
with open('job.txt', 'w', encoding='utf-8') as f:
for job in job_list:
job_name = job.find('a', target='_blank').text.strip()
company_name = job.find('span', class_='t2').text.strip()
location = job.find('span', class_='t3').text.strip()
salary = job.find('span', class_='t4').text.strip()
publish_time = job.find('span', class_='t5').text.strip()
f.write(f'{job_name}\t{company_name}\t{location}\t{salary}\t{publish_time}\n')
在上面的代码中,我们使用Python爬虫爬取51job发布的Java开发工程师工作职位,并将其保存到本地文件job.txt中。
总结
本文介绍了如何使用Python爬虫爬取51job发布的工作职位,包括分析网页结构、编写爬虫代码和运行爬虫代码。需要注意的是,在爬取网页时,需要正确设置请求头和解析HTML文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python爬虫小例子——爬取51job发布的工作职位 - Python技术站