使用Python3.8爬取豆瓣电影250并保存在Sqllite数据库中

本文介绍了如何使用Python3.8进行网络爬虫,抓取豆瓣电影Top250的数据,并详细讲解了涉及的包如bs4、re、urllib及如何将数据存储到SQLite数据库中。
摘要由CSDN通过智能技术生成

1.使用的包

1.bs4
2.re
3.urllib
4.sqllite3

2.爬取网址

https://movie.douban.com/top250

3.具体代码

from bs4 import BeautifulSoup     #网页解析,获取数据
import re       #正则表达式,进行文字匹配
import urllib.request,urllib.error      #制定URL,获取网页数据
import sqlite3  #进行SQLite数据库操作



def main():
    baseurl = "https://movie.douban.com/top250?start="
    #1.爬取网页
    datalist = getData(baseurl)
    dbpath = "movie.db"
    #3.保存数据
    saveData2DB(datalist,dbpath)

#影片详情链接的规则
findLink = re.compile(r'<a href="(.*?)">')     #创建正则表达式对象,表示规则(字符串的模式)
#影片图片
findImgSrc = re.compile(r'<img.*src="(.*?)"',re.S)   #re.S 让换行符包含在字符中
#影片片名
findTitle = re.compile(r'<span class="title">(.*)</span>')
#影片评分
findRating = re.compile(r'<span class="rating_num" property="v:average">(.*)</span>')
#找到评价人数
findJudge = re.compile(r'<span>(\d*)人评价</span>')
#找到概况
findInq = re.compile(r'<span class="inq">(.*)</span>')
#找到影片的相关内容
findBd = re.compile(r'<p class="">(.*?)</p>',re.S)



#爬取网页
def getData(baseurl
好的,你可以按照以下步骤将 PNG 图片保存SQLite 数据库,并从数据库查询并转换为图片: 1. 首先,你需要创建一个 SQLite 数据库表,用于存储 PNG 图片的数据。表的结构可以定义为:`id INTEGER PRIMARY KEY, name TEXT, image BLOB`,其 `id` 为自增主键,`name` 为图片名称,`image` 为图片二进制数据。 2. 在 C# ,你可以使用 `System.Drawing.Image` 类加载 PNG 图片,并将其转换为二进制数据。例如: ```csharp Image image = Image.FromFile("example.png"); MemoryStream ms = new MemoryStream(); image.Save(ms, ImageFormat.Png); byte[] imageData = ms.ToArray(); ms.Close(); ``` 3. 使用 SQLite 提供的 ADO.NET 数据库连接库,将 PNG 图片的二进制数据插入到数据库。代码示例: ```csharp using (SQLiteConnection connection = new SQLiteConnection("Data Source=database.db")) { connection.Open(); using (SQLiteCommand command = new SQLiteCommand("INSERT INTO images (name, image) VALUES (@name, @image)", connection)) { command.Parameters.AddWithValue("@name", "example.png"); command.Parameters.AddWithValue("@image", imageData); command.ExecuteNonQuery(); } connection.Close(); } ``` 4. 从数据库查询 PNG 图片的二进制数据,并将其转换为 `System.Drawing.Image` 对象,然后显示在界面上。代码示例: ```csharp using (SQLiteConnection connection = new SQLiteConnection("Data Source=database.db")) { connection.Open(); using (SQLiteCommand command = new SQLiteCommand("SELECT image FROM images WHERE name=@name", connection)) { command.Parameters.AddWithValue("@name", "example.png"); using (SQLiteDataReader reader = command.ExecuteReader()) { if (reader.Read()) { byte[] imageData = (byte[])reader["image"]; MemoryStream ms = new MemoryStream(imageData); Image image = Image.FromStream(ms); pictureBox1.Image = image; ms.Close(); } } } connection.Close(); } ``` 以上代码仅供参考,具体实现方式还需要根据你的具体需求进行调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值