栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

案例:爬取豆瓣电影Top250中的电影信息

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

案例:爬取豆瓣电影Top250中的电影信息

案例:爬取豆瓣电影Top250中的电影信息
豆瓣电影Top250首页

分析请求地址

在豆瓣电影Top250首页的底部可以确定电影信息一共有10页内容,每页25个电影信息,如下图:

切换页面,可以看到浏览器的URL地址的规律如下:

https://movie.douban.com/top250?start=25&filter=
https://movie.douban.com/top250?start=50&filter=
https://movie.douban.com/top250?start=75&filter=

分析信息位置

打开浏览器“开发者工具”,在顶部选项中选择“Elements“选项,然后单击图标,接着单击鼠标左键选中网页中电影名称,查看电影名称所在HTML代码位置,如下图:

按照图中的操作步骤,查看“导演、主演” “电影评分”“评价人数”以及“电影总结”信息所对应的HTML代码位置。

爬虫代码的实现

操作步骤如下:

(1)导入爬虫所需要的模块,然后创建一个随机请求头信息。代码如下:

#_*_coding:utf-8_*_
# 作者      :liuxiaowei
# 创建时间   :2/5/22 5:37 AM
# 文件      :爬取豆瓣电影Top250中的电影信息.py
# IDE      :PyCharm

# 导入etree子模块
from lxml import etree 

# 导入HTMLSession类
from requests_html import UserAgent

# 创建随机请求头
ua =UserAgent().random

# 导入时间模块
import time

# 导入随机模块
import random

# 导入网络请求模块
import requests

headers = ua

(2)由于HTML代码中的信息内存在大量的空白字符,所以创建一个processing()方法,用于处理字符串中的空白字符。代码如下:

# 处理字符串中的空白符,并拼接字符串
def processing(strs):
    # 定义保存内容的字符串
    s = ''
    for n in strs:
        # 去除空字符
        n = ''.join(n.split())
        # 拼接字符串
        s += n
        # 返回拼接后的字符串
    return s

(3) 创建get_movie_info()方法,在该方法中首选通过requests.get()方法发送网络请求,然后通过etree.HTML()方法解析HTML代码,最后通过XPath提取电影的相关信息。代码如下:

# 获取电影信息
def get_movie_info(url):
    # 发送网络请求
    resp = requests.get(url, headers = headers, verify = False)
    #解析HTML字符串
    html = etree.HTML(resp.text)
    div_all = html.xpath('//div[@]')
    for div in div_all:
        names = div.xpath('./div[@]/a//span/text()') # 获取电影名字信息
        name = processing(names)   # 处理电影名称信息
        infos = div.xpath('./div[@]/p/text()')   # 获取导演、主演等信息
        info = processing(infos)       # 处理导演、主演等信息
        score = div.xpath('./div[@]/div/span[2]/text()')   # 获取电影评分
        evaluation = div.xpath('./div[@]/div/span[4]/text()')   # 获取评价人数

        # 获取电影总结文字
        summary = div.xpath('./div[@]/p[@]/span/text()')
        print('电影名称: ', name)
        print('导演与演员:', info)
        print('电影评分:', score)
        print('电影总结:', evaluation)
        print('电影总结:', summary)
        print('-----------下一页-----------')

(4)创建程序入口,然后创建步长为25的for循环,并在循环中替换每次请求的URL地址,再调用get_movie_infor()方法获取电影信息。代码如下:

if __name__ == "__main__":
    for i in range(0, 250, 25):     # 每页25为间隔,实现循环,共10页
        # 通过format替换切换页码的URL地址
        url = 'https://movie.douban.com/top250?start = {page}&filter='.format(page=i)
        # 调用爬虫方法,获取电影信息
        get_movie_info(url)
        # 等待1至3秒随机时间
        time.sleep(random.randint(1, 3))

程序运行结果如下:

电影名称:  肖申克的救赎/TheShawshankRedemption/月黑高飞(港)/刺激1995(台)
导演与演员: 导演:弗兰克·德拉邦特FrankDarabont主演:蒂姆·罗宾斯TimRobbins/...1994/美国/犯罪剧情
电影评分: ['9.7']
电影总结: ['2544252人评价']
电影总结: ['希望让人自由。']
-----------下一页-----------
电影名称:  霸王别姬/再见,我的妾/FarewellMyConcubine
导演与演员: 导演:陈凯歌KaigeChen主演:张国荣LeslieCheung/张丰毅FengyiZha...1993/中国大陆中国香港/剧情爱情同性
电影评分: ['9.6']
电影总结: ['1890629人评价']
电影总结: ['风华绝代。']
-----------下一页-----------
电影名称:  阿甘正传/ForrestGump/福雷斯特·冈普
导演与演员: 导演:罗伯特·泽米吉斯RobertZemeckis主演:汤姆·汉克斯TomHanks/...1994/美国/剧情爱情
电影评分: ['9.5']
电影总结: ['1911129人评价']
电影总结: ['一部美国近现代史。']
-----------下一页-----------
电影名称:  泰坦尼克号/Titanic/铁达尼号(港/台)
导演与演员: 导演:詹姆斯·卡梅隆JamesCameron主演:莱昂纳多·迪卡普里奥Leonardo...1997/美国墨西哥澳大利亚加拿大/剧情爱情灾难
电影评分: ['9.4']
电影总结: ['1872745人评价']
电影总结: ['失去的才是永恒的。 ']
-----------下一页-----------
电影名称:  这个杀手不太冷/Léon/杀手莱昂/终极追杀令(台)
导演与演员: 导演:吕克·贝松LucBesson主演:让·雷诺JeanReno/娜塔莉·波特曼...1994/法国美国/剧情动作犯罪
电影评分: ['9.4']
电影总结: ['2069740人评价']
电影总结: ['怪蜀黍和小萝莉不得不说的故事。']
-----------下一页-----------
电影名称:  美丽人生/Lavitaèbella/一个快乐的传说(港)/LifeIsBeautiful
导演与演员: 导演:罗伯托·贝尼尼RobertoBenigni主演:罗伯托·贝尼尼RobertoBeni...1997/意大利/剧情喜剧爱情战争
电影评分: ['9.6']
电影总结: ['1172559人评价']
电影总结: ['最美的谎言。']
-----------下一页-----------
电影名称:  千与千寻/千と千尋の神隠し/神隐少女(台)/千与千寻的神隐
导演与演员: 导演:宫崎骏HayaoMiyazaki主演:柊瑠美RumiHîragi/入野自由Miy...2001/日本/剧情动画奇幻
电影评分: ['9.4']
电影总结: ['1992268人评价']
电影总结: ['最好的宫崎骏,最好的久石让。 ']
-----------下一页-----------
电影名称:  辛德勒的名单/Schindler'sList/舒特拉的名单(港)/辛德勒名单
导演与演员: 导演:史蒂文·斯皮尔伯格StevenSpielberg主演:连姆·尼森LiamNeeson...1993/美国/剧情历史战争
电影评分: ['9.5']
电影总结: ['978239人评价']
电影总结: ['拯救一个人,就是拯救整个世界。']
-----------下一页-----------
电影名称:  盗梦空间/Inception/潜行凶间(港)/全面启动(台)
导演与演员: 导演:克里斯托弗·诺兰ChristopherNolan主演:莱昂纳多·迪卡普里奥Le...2010/美国英国/剧情科幻悬疑冒险
电影评分: ['9.4']
电影总结: ['1835364人评价']
电影总结: ['诺兰给了我们一场无法盗取的梦。']
-----------下一页-----------
电影名称:  忠犬八公的故事/Hachi:ADog'sTale/秋田犬八千(港)/忠犬小八(台)
导演与演员: 导演:莱塞·霍尔斯道姆LasseHallström主演:理查·基尔RichardGer...2009/美国英国/剧情
电影评分: ['9.4']
电影总结: ['1258219人评价']
电影总结: ['永远都不能忘记你所爱的人。']
-----------下一页-----------
电影名称:  星际穿越/Interstellar/星际启示录(港)/星际效应(台)
导演与演员: 导演:克里斯托弗·诺兰ChristopherNolan主演:马修·麦康纳MatthewMc...2014/美国英国加拿大/剧情科幻冒险
电影评分: ['9.4']
电影总结: ['1517007人评价']
电影总结: ['爱是一种力量,让我们超越时空感知它的存在。']
-----------下一页-----------
电影名称:  楚门的世界/TheTrumanShow/真人Show(港)/真人戏
导演与演员: 导演:彼得·威尔PeterWeir主演:金·凯瑞JimCarrey/劳拉·琳妮Lau...1998/美国/剧情科幻
电影评分: ['9.3']
电影总结: ['1439023人评价']
电影总结: ['如果再也不能见到你,祝你早安,午安,晚安。']
-----------下一页-----------
电影名称:  海上钢琴师/Laleggendadelpianistasull'oceano/声光伴我飞(港)/一九零零的传奇
导演与演员: 导演:朱塞佩·托纳多雷GiuseppeTornatore主演:蒂姆·罗斯TimRoth/...1998/意大利/剧情音乐
电影评分: ['9.3']
电影总结: ['1491057人评价']
电影总结: ['每个人都要走一条自己坚定了的路,就算是粉身碎骨。 ']
-----------下一页-----------
电影名称:  三傻大闹宝莱坞/3Idiots/三个傻瓜(台)/作死不离3兄弟(港)
导演与演员: 导演:拉库马·希拉尼RajkumarHirani主演:阿米尔·汗AamirKhan/卡...2009/印度/剧情喜剧爱情歌舞
电影评分: ['9.2']
电影总结: ['1668685人评价']
电影总结: ['英俊版憨豆,高情商版谢耳朵。']
-----------下一页-----------
电影名称:  机器人总动员/WALL·E/太空奇兵·威E(港)/瓦力(台)
导演与演员: 导演:安德鲁·斯坦顿AndrewStanton主演:本·贝尔特BenBurtt/艾丽...2008/美国/科幻动画冒险
电影评分: ['9.3']
电影总结: ['1175861人评价']
电影总结: ['小瓦力,大人生。']
-----------下一页-----------
电影名称:  放牛班的春天/Leschoristes/歌声伴我心(港)/唱诗班男孩
导演与演员: 导演:克里斯托夫·巴拉蒂ChristopheBarratier主演:热拉尔·朱尼奥Gé...2004/法国瑞士德国/剧情喜剧音乐
电影评分: ['9.3']
电影总结: ['1160473人评价']
电影总结: ['天籁一般的童声,是最接近上帝的存在。 ']
-----------下一页-----------
电影名称:  无间道/無間道/InfernalAffairs/Mougaandou
导演与演员: 导演:刘伟强/麦兆辉主演:刘德华/梁朝伟/黄秋生2002/中国香港/剧情犯罪惊悚
电影评分: ['9.3']
电影总结: ['1164599人评价']
电影总结: ['香港电影史上永不过时的杰作。']
-----------下一页-----------
电影名称:  疯狂动物城/Zootopia/优兽大都会(港)/动物方城市(台)
导演与演员: 导演:拜伦·霍华德ByronHoward/瑞奇·摩尔RichMoore主演:金妮弗·...2016/美国/喜剧动画冒险
电影评分: ['9.2']
电影总结: ['1669261人评价']
电影总结: ['迪士尼给我们营造的乌托邦就是这样,永远善良勇敢,永远出乎意料。']
-----------下一页-----------
电影名称:  大话西游之大圣娶亲/西遊記大結局之仙履奇緣/西游记完结篇仙履奇缘/齐天大圣西游记
导演与演员: 导演:刘镇伟JeffreyLau主演:周星驰StephenChow/吴孟达ManTatNg...1995/中国香港中国大陆/喜剧爱情奇幻古装
电影评分: ['9.2']
电影总结: ['1362261人评价']
电影总结: ['一生所爱。']
-----------下一页-----------
电影名称:  熔炉/도가니/无声呐喊(港)/漩涡
导演与演员: 导演:黄东赫Dong-hyukHwang主演:孔侑YooGong/郑有美Yu-miJung/...2011/韩国/剧情
电影评分: ['9.3']
电影总结: ['828766人评价']
电影总结: ['我们一路奋战不是为了改变世界,而是为了不让世界改变我们。']
-----------下一页-----------
电影名称:  教父/TheGodfather/MarioPuzo'sTheGodfather
导演与演员: 导演:弗朗西斯·福特·科波拉FrancisFordCoppola主演:马龙·白兰度M...1972/美国/剧情犯罪
电影评分: ['9.3']
电影总结: ['836193人评价']
电影总结: ['千万不要记恨你的对手,这样会让你失去理智。']

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/738281.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号