python爬虫抓取豆瓣电影 并导入mysql
时间: 2023-07-04 10:25:27 浏览: 98
一个python 豆瓣电影的爬虫
5星 · 资源好评率100%
好的,这是一个比较常见的需求,我可以给你提供一个简单的思路:
1. 使用 Python 的 requests 库发送 HTTP 请求,获取豆瓣电影的页面内容;
2. 使用 BeautifulSoup 库解析网页内容,提取出电影信息;
3. 使用 PyMySQL 库连接 MySQL 数据库,并创建一个电影信息的表;
4. 将从网页中解析出来的电影信息插入到数据库中。
以下是一个简单的示例代码,你可以参考一下:
``` python
import requests
from bs4 import BeautifulSoup
import pymysql
# 发送 HTTP 请求,获取豆瓣电影页面内容
url = 'https://movie.douban.com/top250'
response = requests.get(url)
html = response.text
# 使用 BeautifulSoup 解析页面内容,提取电影信息
soup = BeautifulSoup(html, 'html.parser')
movies = soup.select('.grid_view li')
# 连接 MySQL 数据库
conn = pymysql.connect(
host='localhost',
user='root',
password='123456',
db='test',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
# 创建电影信息表
with conn.cursor() as cursor:
cursor.execute('CREATE TABLE IF NOT EXISTS movies ('
'id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,'
'title VARCHAR(255),'
'score FLOAT(2),'
'quote VARCHAR(255))')
# 将电影信息插入到数据库中
with conn.cursor() as cursor:
for movie in movies:
title = movie.select('.title')[0].text
score = movie.select('.rating_num')[0].text
quote = movie.select('.inq')[0].text if movie.select('.inq') else ''
sql = 'INSERT INTO movies (title, score, quote) VALUES (%s, %s, %s)'
cursor.execute(sql, (title, score, quote))
conn.commit()
# 关闭数据库连接
conn.close()
```
以上代码中,我们使用 requests 库发送 HTTP 请求,使用 BeautifulSoup 库解析网页内容,使用 PyMySQL 库连接 MySQL 数据库,并创建了一个电影信息的表。最后,我们将从网页中解析出来的电影信息插入到数据库中。这是一个简单的示例,你可以根据自己的需求进行修改和扩展。
阅读全文