import sqlite3
import requests
from bs4 import BeautifulSoup
def get_names():
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0',
'Host': 'movie.douban.com'}
name_list = []
for i in range(0, 10):
link = 'https://movie.douban.com/top250?start=' + str(i * 25)
r = requests.get(link, headers=headers, timeout=20)
if r.status_code == 200:
print('第', str(i + 1), '页爬取完成')
soup = BeautifulSoup(r.text, 'lxml')
div_list = soup.find_all('div', class_='hd')
for each in div_list:
name = each.a.span.text.strip()
name_list.append(name)
return name_list
names = get_names()
print(names)
conn = sqlite3.connect('douban_movies_250.db')
cursor = conn.cursor()
for name in names:
cursor.execute('INSERT INTO Top_250 (name) VALUES (?)', (name,))
print('將', name, '寫入數據庫')
conn.commit()
cursor.close()
conn.close()
求求好心人看看
你没有创建数据库,加这段代码就可以了。
dbpath = ".\\douban_movies_250.db"
def init_db(dbpath):
conn = sqlite3.connect(dbpath)
cursor = conn.cursor()
sql = '''
create table Top_250
(id integer primary key autoincrement,
name varchar)
'''
cursor.execute(sql)
conn.commit()
conn.close()
init_db(dbpath)