爬取boss直聘招聘信息并保存到mysql数据库
时间: 2023-10-11 18:05:11 浏览: 234
好的,实现这个功能需要用到 Python 爬虫和 MySQL 数据库操作的技术。
首先,我们需要安装相关的库和工具:
- requests:用于发送 HTTP 请求,获取网页内容。
- BeautifulSoup4:用于解析 HTML,提取需要的信息。
- pymysql:用于连接 MySQL 数据库,进行操作。
可以使用 pip 安装这些库:
```
pip install requests
pip install beautifulsoup4
pip install pymysql
```
接下来,我们编写代码实现爬取并保存数据的功能。这里简单介绍一下流程:
1. 发送 HTTP 请求,获取网页内容。
2. 使用 BeautifulSoup 解析 HTML,提取需要的信息(如岗位名称、公司名称、薪资等)。
3. 连接 MySQL 数据库,创建表格。
4. 将提取到的信息插入到表格中。
代码如下:
```python
import requests
from bs4 import BeautifulSoup
import pymysql
# 发送 HTTP 请求,获取网页内容
def get_html(url):
response = requests.get(url)
return response.text
# 解析 HTML,提取信息
def parse_html(html):
soup = BeautifulSoup(html, 'html.parser')
job_list = soup.find_all('div', {'class': 'job-primary'})
data = []
for job in job_list:
job_name = job.find('div', {'class': 'job-title'}).text.strip() # 岗位名称
company_name = job.find('div', {'class': 'company-text'}).a.text.strip() # 公司名称
salary = job.find('span', {'class': 'red'}).text.strip() # 薪资
data.append((job_name, company_name, salary))
return data
# 连接 MySQL 数据库,创建表格
def create_table():
conn = pymysql.connect(host='localhost', user='root', password='password', database='test', charset='utf8mb4')
cursor = conn.cursor()
# 创建表格
cursor.execute('CREATE TABLE IF NOT EXISTS jobs (id INT PRIMARY KEY AUTO_INCREMENT, job_name VARCHAR(255), company_name VARCHAR(255), salary VARCHAR(255))')
conn.close()
# 将数据插入到数据库中
def insert_data(data):
conn = pymysql.connect(host='localhost', user='root', password='password', database='test', charset='utf8mb4')
cursor = conn.cursor()
# 插入数据
for item in data:
cursor.execute('INSERT INTO jobs (job_name, company_name, salary) VALUES (%s, %s, %s)', item)
conn.commit()
conn.close()
if __name__ == '__main__':
# 爬取数据
url = 'https://www.zhipin.com/c100010000/h_100010000/?query=python'
html = get_html(url)
data = parse_html(html)
# 保存数据到数据库
create_table()
insert_data(data)
```
在代码中,我们首先定义了三个函数:
- `get_html()`:发送 HTTP 请求,获取网页内容。
- `parse_html()`:使用 BeautifulSoup 解析 HTML,提取需要的信息。
- `create_table()`:连接 MySQL 数据库,创建表格。
然后在 `if __name__ == '__main__':` 中,我们先调用 `get_html()` 函数获取网页内容,然后调用 `parse_html()` 函数解析 HTML 并提取数据。接着调用 `create_table()` 函数创建表格,最后调用 `insert_data()` 函数将数据插入到数据库中。
注意,这里我们需要将 `host`、`user`、`password` 和 `database` 改成自己 MySQL 数据库的相关信息。同时,如果需要爬取其他城市或职位的数据,可以修改 `url` 中的参数。
希望这个代码能帮到你!
阅读全文