爬虫部分:使用Python的 requests 和 BeautifulSoup 库获取网站上的数据,并解析成结构化的数据爬取51job网站
时间: 2024-01-24 10:18:33 浏览: 92
好的,以下是一个简单的示例代码,可以爬取51job网站上的职位信息:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://search.51job.com/list/000000,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.36'}
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:
title = job.find('a', class_='title')['title']
company = job.find('a', class_='t2').text.strip()
location = job.find('span', class_='t3').text.strip()
salary = job.find('span', class_='t4').text.strip()
print(title)
print(company)
print(location)
print(salary)
print()
```
解释一下代码中的几个关键点:
1. `requests.get(url, headers=headers)` 发送 GET 请求获取网页内容, `headers` 是请求头部信息,我们需要在请求头中添加 User-Agent 信息,模拟浏览器访问,否则可能会被网站屏蔽。
2. `BeautifulSoup(response.text, 'html.parser')` 将网页内容转化为 BeautifulSoup 对象,方便使用其提供的方法进行解析。
3. `soup.find_all('div', class_='el')` 查找所有 class 为 'el' 的 div 标签,该标签包含了职位信息。
4. `job.find('a', class_='title')['title']` 查找 class 为 'title' 的 a 标签,获取该标签的 title 属性,即职位名称。
5. `job.find('a', class_='t2').text.strip()` 查找 class 为 't2' 的 a 标签,获取该标签的文本内容,即公司名称。
6. `job.find('span', class_='t3').text.strip()` 查找 class 为 't3' 的 span 标签,获取该标签的文本内容,即工作地点。
7. `job.find('span', class_='t4').text.strip()` 查找 class 为 't4' 的 span 标签,获取该标签的文本内容,即薪资待遇。
这样就可以获取到51job网站上的职位信息了。
阅读全文