写在前面
之前写过一篇爬取电影信息保存为excel的文章,今天给大家分享一下储存在sqlite数据库的方法,还是老规矩在文末会附上完整代码,需要的小伙伴自取就好了,能帮助到你的话别忘了点赞关注喔~
郑重声明:本人目前仅在CSDN这一个平台发布文章,其他小伙伴如果想转载 或者引用请注明引用来源,未经许可不得直接搬运,请尊重创作人的劳动成果,谢谢!
一、需求分析
爬取豆瓣top250的基本信息,包括电影的名称、豆瓣评分、评价数、电影概况、电影连接等并保存在sqlite数据库中。
网站链接: https://movie.douban.com/top250
效果图如下:
二、具体步骤
对网页的分析这里就不再详细说明了,需要的小伙伴可以看之前的文章,都有详细的解释。
传送门: https://blog.csdn.net/weixin_44578172/article/details/109792938
另外对pycharm中sqlite数据库可视化操作不熟悉的小伙伴可以参考这篇文章,会操作的童鞋可以自行略过。
传送门: https://lj-0cas1.blog.csdn.net/article/details/110353309
1.创建数据库
既然是要保存到数据库,那么我们首先就要先创建一个数据库,具体代码如下。
#创建数据库
def init_db(dbpath):
# 创建数据表
sql = '''
create table movie_top250
(
id integer primary key autoincrement,
info_link text,
pic_link text,
cname varchar ,
ename varchar ,
score numeric ,
rated numeric ,
instroduction text,
info text
)
'''''
conn = sqlite3.connect(dbpath)
cursor = conn.cursor()
cursor.execute(sql)
conn.commit()
conn.close()
2.保存数据到数据库
使用insert into语句将爬取到的数据存入到数据库中。
#保存数据db
def saveDataDB(datalist,dbpath):
init_db(dbpath)
conn = sqlite3.connect(dbpath)
cur = conn.cursor()
for data in datalist:
for index in range(len(data)):
if index == 4 or index == 5:
continue
data[index] = '"'+data[index]+'"'
sql = '''
insert into movie_top250(
info_link,pic_link,cname,ename,score,rated,instroduction,info
)
values(%s)
'''%",".join(data)
cur.execute(sql)
conn.commit()
cur.close()
conn.close()
以上就