百木园-与人分享,
就是让自己快乐。

Python爬取豆瓣top250电影数据并写入excel,视频教程+源码奉上不可能学不会

时间真是好快啊,又到每日跟大家分享Python小技巧的时候了,今天跟大家分享的是爬取豆瓣top250电影。这篇文章我会把源码

以及视频教程给大家,想学的小伙伴可以动手操办起来。话不多说,这就来。

 

 

 

 

 

 

## 1.python程序

 

Python学习交流Q群:906715085###
#导入库
import requests
import parsel
import xlsxwriter

 

 

 

Python学习交流Q群:906715085###
#导入库
import requests
import parsel
import xlsxwriter

 

 

Python学习交流Q群:906715085###
#创建excel,设置列宽
wb=xlsxwriter.Workbook(\'豆瓣电影.xlsx\')
ws=wb.add_worksheet(\'豆瓣电影海报\')
ws.set_column(\'A:A\',7)
ws.set_column(\'B:B\',30)
ws.set_column(2,3,50)
ws.set_column(\'G:G\',30)

 

 

#标题行
headings=[\'海报\',\'名称\',\'导演\',\'主演\',\'年份\',\'国家\',\'类型\']


 

 

#设置excel风格
ws.set_tab_color(\'red\')
head_format=wb.add_format({\'bold\':1,\'fg_color\':\'cyan\',\'align\':\'center\',\'font_name\':u\'微软雅黑\',\'valign\':\'vcenter\'})
cell_format=wb.add_format({\'bold\':0,\'align\':\'center\',\'font_name\':u\'微软雅黑\',\'valign\':\'vcenter\'})
ws.write_row(\'A1\',headings,head_format)


 

 

#创建空列表
j=0
actor_1=[]
actor_2=[]
year=[]
country=[]
movie_type=[]


 

 

#发送请求,获取响应,遍历豆瓣电影信息
for i in range(0,250,25):
url=\'https://movie.douban.com/top250?start=\'+str(i)
response=requests.get(url,headers=headers)
response.encoding=response.apparent_encoding
selector=parsel.Selector(response.text)
lis=selector.css(\'#content>div>div.article>ol>li>div>div.pic>a>img::attr(src)\').getall()
title=selector.css(\'#content>div>div.article>ol>li>div>div.info>div.hd>a>span:nth-child(1)::text\').getall()
director_info=selector.xpath(\'//*[@id=\"content\"]/div/div[1]/ol/li/div/div[2]/div[2]/p[1]/text()[1]\').getall()
movie_info = selector.xpath(\'//*[@id=\"content\"]/div/div[1]/ol/li/div/div[2]/div[2]/p[1]/text()[2]\').getall()

 

 

 

# 提取并清洗导演、主演标签信息
for director in director_info:
director=director.strip().replace(\'\\xa0\\xa0\\xa0\',\' \').replace(\'...\',\'\').replace(\'导演: \',\'\').split(\'主演: \')
if len(director)>1:
actor_1.append(director[0])
actor_2.append(director[1])
else:
actor_1.append(director[0])
actor_2.append(\'None\')

 

 

#提取并清洗电影年份、国家、类型标签信息
for detail in movie_info:
detail=detail.strip().split(\'\\xa0/\\xa0\')
year.append(detail[0])
country.append(detail[1])
movie_type.append(detail[2])

 

 

#下载电影海报信息到本地
for n in range(len(lis)):
img=requests.get(lis[n]).content
with open(f\'./图片/{title[n]}.jpg\',\'wb\') as f:
f.write(img)

 

 

 

# 将获取到的各种标签信息写入excel
for k in range(len(lis)):
ws.set_row(k+1+j*25,60)
ws.insert_image(\'A\'+str(k+2+j*25),f\'./图片/{title[k]}.jpg\',{\'x_scale\':0.2,\'y_scale\':0.2})
ws.write(k+1+j*25,1,title[k],cell_format)
ws.write(k+1+j*25,2,actor_1[k+j*25],cell_format)
ws.write(k+1+j*25,3,actor_2[k+j*25],cell_format)
ws.write(k+1+j*25,4,year[k+j*25],cell_format)
ws.write(k+1+j*25,5,country[k+j*25],cell_format)
ws.write(k+1+j*25,6,movie_type[k+j*25],cell_format)
j+=1
wb.close()

 

 

## 2.效果

在这里插入图片描述

在这里插入图片描述

 

## 3.视频教程

视频链接:
https://www.bilibili.com/video/BV1hL4y1L7mq?share_source=copy_web

学不会的跟视频做

 

 

## 4.结尾

 

源码以及视频教程都给大家放在上面了,各位小伙伴不妨动手试试。疫情居家没有剧看是很痛苦的,记得点一个大大的赞。

 

 

 

 


来源:https://www.cnblogs.com/123456feng/p/16135606.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » Python爬取豆瓣top250电影数据并写入excel,视频教程+源码奉上不可能学不会

相关推荐

  • 暂无文章