【Python爬虫笔记】爬取爱奇艺热门电影信息(电影名、主演、播放链接、电影评分)

import urllib.request
import re
import os
import requests
import xlsxwriter
import xlrd

Pic = "./Picture"
html = urllib.request.urlopen("https://list.iqiyi.com/www/1/-------------11-1-1-iqiyi--.html").read()
html = html.decode("utf-8")                                #请求链接,返回网页信息并转换编码格式

req = "imageUrl\":\"(.*?),";
req_name = "(.*?)";    #正则表达式 匹配电影评分    
Move_name = []
Move_url = []                                            #用于存储爬取的电影名、主演信息、播放链接
Move_zy = []

urls = re.findall(req, html)
urls_name = re.findall(req_name, html)
urls_zy = re.findall(req_zy, html)                        #通过正则表达式匹配到有效信息
urls_play = re.findall(req_play, html)
urls_score = re.findall(req_score, html)
#print(urls)
Flag = 1
workbook = xlsxwriter.Workbook("text.xlsx")                #新建一个表格用于存放爬取的信息
worksheet = workbook.add_worksheet()
worksheet.set_column('A:D', 30)                          # 设置A到D列的列宽全为20
worksheet.write(0,0,"电影名")
worksheet.write(0,1,"主演")                                #设置表头信息
worksheet.write(0,2,"播放路径")
worksheet.write(0,3,"电影评分")
                        #设置表格宽度
print("\n")    
for j in urls_name:
    worksheet.write(Flag,0,j)
    Flag = Flag + 1                                        #循环存储爬取的电影名数据
Flag = 1     
print("电影名存储完成...")
for k in urls_zy:
    worksheet.write(Flag,1,k)                            #循环存储爬取的主演信息数据
    Flag = Flag + 1 
Flag = 1
print("主演存储完成...")
for p in urls_play:
    worksheet.write(Flag,2,p)                            #循环存储爬取的电影播放路径数据
    Flag = Flag + 1
Flag = 1    
print("播放路径存储完成...")
for p in urls_score:
    worksheet.write(Flag,3,p)
    Flag = Flag + 1                                        #循环存储爬取的电影评分数据
Flag = 1
print("电影评分储完成...")    
workbook.close()                                         #关闭表格文件(不关闭会报错、文件不会保存)

data = xlrd.open_workbook('text.xlsx')
table = data.sheet_by_index(0)                            #打开表格文件
Flag = 1
if not os.path.exists(Pic):                                #判断当前根目录是否存在,不存在则创建
    os.mkdir(Pic)
for i in urls:
    img = requests.get(i) 
    f = open('./Picture/'+str(table.cell(Flag,0).value)+'.jpg','ab')     #存储图片,文件名从表格中获取电影名
    Flag = Flag + 1
    f.write(img.content)                                 #多媒体存储图片文件                    
    f.close()
print("电影图片存储完成...")    

 

你可能感兴趣的:(Python)