爬取豆瓣电影Top250榜
时间: 2023-12-18 15:05:13 浏览: 94
以下是使用Python爬取豆瓣电影Top250榜的示例代码:
```python
import requests
from bs4 import BeautifulSoup
import sqlite3
# 创建数据库连接
conn = sqlite3.connect('movies.db')
cursor = conn.cursor()
# 创建数据表
cursor.execute('''CREATE TABLE IF NOT EXISTS movies
(id INTEGER PRIMARY KEY,
title TEXT,
rating REAL,
num_ratings INTEGER,
summary TEXT,
url TEXT)''')
# 爬取Top250榜单
for i in range(0, 250, 25):
url = f'https://movie.douban.com/top250?start={i}&filter='
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
movies = soup.find_all('div', class_='info')
# 解析电影信息并存储到数据库
for movie in movies:
title = movie.find('span', class_='title').text
rating = float(movie.find('span', class_='rating_num').text)
num_ratings = int(movie.find('span', class_='rating_num').find_next_sibling().text[:-3])
summary = movie.find('span', class_='inq').text if movie.find('span', class_='inq') else ''
url = movie.find('a')['href']
cursor.execute(f"INSERT INTO movies (title, rating, num_ratings, summary, url) VALUES ('{title}', {rating}, {num_ratings}, '{summary}', '{url}')")
conn.commit()
# 关闭数据库连接
conn.close()
```
该代码使用requests和BeautifulSoup库爬取豆瓣电影Top250榜单,并将电影信息存储到SQLite数据库中。具体步骤如下:
1. 导入需要的库:requests、BeautifulSoup和sqlite3。
2. 创建数据库连接,并创建名为movies的数据表。
3. 循环爬取Top250榜单,每次爬取25部电影。
4. 解析每部电影的信息,包括电影名称、评分、评分人数、电影概述和电影链接。
5. 将电影信息插入到数据库中。
6. 关闭数据库连接。
阅读全文