在前面代码的基础上,继续提取以下信息并保存到MySQL数据库中(招聘名称、职位信息、薪资、职位福利、经验要求、学历要求、公司名称、公司行业、公司性质、公司人数、公司概况),保存完成后将数据从数据库中查询展示在控制台。
时间: 2023-09-17 12:10:09 浏览: 45
要将提取的招聘信息保存到 MySQL 数据库中,你可以使用 Python 的 `mysql-connector-python` 库来连接和操作数据库。以下是修改后的代码示例,可以爬取前述关键词列表的第一页招聘信息,并将提取的信息保存到 MySQL 数据库中,并从数据库中查询并展示数据在控制台上:
```python
import requests
from bs4 import BeautifulSoup
import mysql.connector
keywords = ['数据分析', '数据挖掘', '算法', '机器学习', '深度学习', '人工智能']
def scrape_job_details(url, cursor):
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# 提取招聘信息详情页的相关信息
job_title = soup.find('h1').text.strip()
job_description = soup.find('div', class_='job-detail').text.strip()
# 其他信息的提取类似...
# 插入到数据库
sql = "INSERT INTO jobs (job_title, job_description, ...) VALUES (%s, %s, ...)"
values = (job_title, job_description, ...)
cursor.execute(sql, values)
def scrape_jobs():
base_url = 'https://example.com/jobs?keyword='
# 连接到 MySQL 数据库
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='your_host', database='your_database')
cursor = cnx.cursor()
# 创建 jobs 表(如果不存在的话)
create_table_query = """
CREATE TABLE IF NOT EXISTS jobs (
id INT AUTO_INCREMENT PRIMARY KEY,
job_title VARCHAR(255),
job_description TEXT,
...
)
"""
cursor.execute(create_table_query)
for keyword in keywords:
url = base_url + keyword
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
job_links = soup.find_all('a', class_='job-link')[:10] # 只获取前10个招聘信息的链接
for link in job_links:
job_url = link['href']
job_url = 'https://example.com' + job_url # 拼接完整的招聘信息详情页链接
scrape_job_details(job_url, cursor)
cnx.commit() # 提交数据库事务
# 从数据库中查询并展示数据
select_query = "SELECT * FROM jobs"
cursor.execute(select_query)
result = cursor.fetchall()
for row in result:
print('招聘名称:', row[1])
print('职位信息:', row[2])
# 其他信息的输出类似...
print('------------------------------')
# 关闭数据库连接
cursor.close()
cnx.close()
scrape_jobs()
```
请注意,你需要根据实际情况修改数据库连接配置(`your_username`、`your_password`、`your_host`、`your_database`),以及调整表的结构和列名(`jobs` 表)。此外,你还需要根据目标网站的 HTML 结构和相应的解析规则进行适当的调整。