使用`requests`和`BeautifulSoup`库爬取拉勾网上的Python开发职位信息,包括公司名称、职位描述、薪资范围和工作地点,并将结果保存为JSON文件。
时间: 2024-10-24 15:18:58 浏览: 48
爬取工作职位信息的python源码
要使用`requests`和`BeautifulSoup`库从拉勾网上爬取Python开发职位信息,你需要按照以下步骤操作:
1. **安装所需库**:首先确保已经安装了`requests`和`beautifulsoup4`库,如果没有,可以使用pip安装:
```bash
pip install requests beautifulsoup4
```
2. **导入库**:开始编写脚本时,导入这两个库:
```python
import requests
from bs4 import BeautifulSoup
import json
```
3. **定义目标URL**:拉勾网搜索Python开发职位的URL加上查询参数,通常是搜索关键词和页数:
```python
base_url = "https://www.lagou.com/jobs/"
keyword = "Python开发"
page_num = 1 # 想要爬取的第几页,每页包含一定数量的职位
```
4. **发送请求并解析HTML**:
```python
def fetch_page(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, "lxml")
return soup
soup = fetch_page(base_url + keyword + "?px=" + str(page_num * 20))
```
5. **定位职位信息**:分析网页结构,找出包含公司名称、职位描述、薪资范围和工作地点的数据块。这通常涉及到查找特定的HTML标签或属性。假设这些信息在`<li>`标签内,你可以这样做:
```python
jobs = []
job_elements = soup.select(".job-item")
for element in job_elements:
title = element.select_one(".title").text
company = element.select_one(".company").text
salary_range = element.select_one(".salary").text
location = element.select_one(".location").text if element.select_one(".location") else ""
job_info = {
"Title": title,
"Company": company,
"Salary Range": salary_range,
"Location": location,
}
jobs.append(job_info)
```
6. **保存数据**:
```python
with open("python_jobs.json", "w") as f:
json.dump(jobs, f, indent=2) # 以美观的方式保存JSON文件
```
注意:拉勾网可能会实施反爬机制,频繁访问可能导致IP被封禁,所以需要合理设置爬取频率和代理IP(如果必要)。此外,直接爬取可能违反服务条款,建议先了解相关规定。
阅读全文