python爬取电影网站相关数据,涉及知识:urllib获取url、re正则解析数据、保存excel
毛毛今天的学习笔记是爬抓电影网站的数据,这里写的豆瓣,其实不是豆瓣儿,用的另一个电影网站做的测试
小结:使用了urllib包,只爬抓了”电影名称”,”图片链接”,这里没有写数据库操作流程。
# -*- codeing = utf-8 -*- # @Time : 2022/9/23 0023 14:25 # @Author : 毛毛 # @File : test.py # @Function :爬虫-爬抓豆瓣电影 from bs4 import BeautifulSoup #网页解析,获取数据 import re #正则表达式,进行文字匹配 import urllib.request,urllib.error #定制URL,获取网页数据 import xlwt #进行excel操作 import sqlite3 #进行SQLite数据库操作 def main(): baseurl = "https://www.1905.com/vod/list/n_1_a_4/o3p" savepath = ".\\豆瓣单影Top205.xls" #1.爬取网页 datalist = getData(baseurl) #print(datalist) saveData(datalist,savepath) #定义正则规则 findLink = re.compile(r'<h3>(.*?)</h3>') findimage = re.compile(r'<img.*src="(.*?)"/>') #re.s包含换行符 #爬取网页 def getData(baseurl): datalist = [] for i in range(1,5): #调用获取页面信息的函数 左闭右开 共计10页 url = baseurl + str(i) + ".html" #每页25条 html = askURL(url) #保存获取到的网页源码 #print(html) #print(url) #拿到所有的item soup = BeautifulSoup(html,"html.parser") for item in soup.find_all('section',class_="mod row search-list"): #print(item) 查看电影item全部信息 data = [] #保存一部电影的所有信息 item = str(item) #转成字符串 #print(item) #显示每一个item link = re.findall(findLink,item) #re库通过正则来获取指定字符串 #print(link) data.append(link) imgSrc = re.findall(findimage,item) data.append(imgSrc) datalist.append(data) #print(imgSrc) return datalist # 2.解析数据 #得到指定一个URL的网页内容 def askURL(url): head = { "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36" } request = urllib.request.Request(url=url,headers=head) html = "" try: response = urllib.request.urlopen(request) html = response.read().decode("utf-8") # 读出来 并用utf-8 except urllib.error.URLError as e: if hasattr(e,"code"): print(e.code) if hasattr(e,"reason"): print(e.reason) #print(html) return html # 3.保存数据 def saveData(datalist,savepath): book = xlwt.Workbook(encoding="utf-8",style_compression=0) #创建一个Workbook对象 sheet = book.add_sheet('电影名称和图片地址',cell_overwrite_ok=True) #创建工作表 col = ("电影名称","图片链接") for i in range(len(col)): sheet.write(0,i,col[i]) #列名 #print(datalist) # for name in datalist: # for name2 in name: # for name3 in name2: # print(name3) for i in range(4): for j in range(2): for k in range(24): data = datalist[i][j] # print(data[k]) sheet.write(k + 1, j, data[k]) book.save(savepath) #保存 if __name__ == "__main__": # 当程序执行时 main() print("爬取成功!")
如下载链接失效,请联系管理员处理【QQ:941007525,微信:style028666】
免责申明:
本站资源均来源于互联网,如有侵权请联系站长!将第一时间删除
本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
资源仅供学习参考请勿商用或其它非法用途,否则一切后果用户自负!
毛毛博客 » python爬取电影网站相关数据,涉及知识:urllib获取url、re正则解析数据、保存excel
免责申明:
本站资源均来源于互联网,如有侵权请联系站长!将第一时间删除
本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
资源仅供学习参考请勿商用或其它非法用途,否则一切后果用户自负!
毛毛博客 » python爬取电影网站相关数据,涉及知识:urllib获取url、re正则解析数据、保存excel