时间真是好快啊,又到每日跟大家分享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
本站部分图文来源于网络,如有侵权请联系删除。