这次以⾖瓣电影TOP250⽹为例编写⼀个爬⾍程序,并将爬取到的数据(排名、电影名和电影海报⽹址)存⼊MySQL数据库中。下⾯是完整代码:
Ps:在执⾏程序前,先在MySQL中创建⼀个数据库\"pachong\"。
import pymysqlimport requestsimport re
#获取资源并下载def resp(listURL): #连接数据库
conn = pymysql.connect( host = '127.0.0.1', port = 3306, user = 'root',
password = '******', #数据库密码请根据⾃⾝实际密码输⼊ database = 'pachong', charset = 'utf8' )
#创建数据库游标
cursor = conn.cursor()
#创建列表t_movieTOP250(执⾏sql语句)
cursor.execute('create table t_movieTOP250(id INT PRIMARY KEY auto_increment NOT NULL ,movieName VARCHAR(20) NOT NULL ,pictrue_address VARCHAR(100))') try:
# 爬取数据
for urlPath in listURL: # 获取⽹页源代码
response = requests.get(urlPath) html = response.text # 正则表达式
namePat = r'alt=\"(.*?)\" src=' imgPat = r'src=\"(.*?)\" class='
# 匹配正则(排名【⽤数据库中id代替,⾃动⽣成及排序】、电影名、电影海报(图⽚地址)) res2 = re.compile(namePat) res3 = re.compile(imgPat) textList2 = res2.findall(html) textList3 = res3.findall(html)
# 遍历列表中元素,并将数据存⼊数据库 for i in range(len(textList3)):
cursor.execute('insert into t_movieTOP250(movieName,pictrue_address) VALUES(\"%s\ #从游标中获取结果 cursor.fetchall() #提交结果 conn.commit() print(\"结果已提交\") except Exception as e: #数据回滚
conn.rollback() print(\"数据已回滚\") #关闭数据库 conn.close()
#top250所有⽹页⽹址def page(url): urlList = []
for i in range(10): num = str(25*i)
pagePat = r'?start=' + num + '&filter=' urL = url+pagePat urlList.append(urL) return urlList
if __name__ == '__main__':
url = r\"https://movie.douban.com/top250\" listURL = page(url) resp(listURL)
结果如下图:
以上就是我的分享,如果有什么不⾜之处请指出,多交流,谢谢!想获取更多数据或定制爬⾍的请点击
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo6.com 版权所有 湘ICP备2023023988号-11
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务