并用sqlite保存在本地数据库
时间: 2023-11-09 09:04:18 浏览: 91
好的,下面是一个将爬取到的电影信息保存到本地SQLite数据库的示例代码:
```python
import requests
from bs4 import BeautifulSoup
import sqlite3
url = 'https://movie.douban.com/top250'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299'
}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
movies = soup.select('.item')
# 连接到本地SQLite数据库
conn = sqlite3.connect('movies.db')
# 创建表
conn.execute('''CREATE TABLE IF NOT EXISTS movie_top250 (
id INTEGER PRIMARY KEY,
title TEXT,
rating REAL,
year INTEGER,
director TEXT
)''')
# 插入数据
for movie in movies:
title = movie.select('.title')[0].text.strip()
rating = movie.select('.rating_num')[0].text.strip()
year = movie.select('.inq')[0].text.strip()[1:-1] if movie.select('.inq') else 'N/A'
info = movie.select('.bd p')[0].text.strip().split('\n')
director = info[0][4:]
conn.execute("INSERT INTO movie_top250 (title, rating, year, director) VALUES (?, ?, ?, ?)", (title, rating, year, director))
# 提交更改并关闭连接
conn.commit()
conn.close()
```
这段代码会将爬取到的电影信息保存到本地SQLite数据库中,如果数据库不存在,则会创建一个新的数据库。在这个示例中,我们创建了一个名为`movie_top250`的表,包含电影名称、评分、上映年份和导演等信息。你可以根据自己的需求修改表的结构。
阅读全文