美文网首页大数据 爬虫Python AI Sql100篇-Python爬虫专栏
python 关于正则表达式的运用-猫眼电影的爬取

python 关于正则表达式的运用-猫眼电影的爬取

作者: Alcazar | 来源:发表于2019-07-04 21:20 被阅读6次

    关于python爬虫的实用技巧---【初级爬虫应用】

    【爬取网址】:
    https://maoyan.com/board/4?offset=0

    【店小二】:各位看官,是否想看一部电影解解闷呢?
    那就打跑一跑下面的程序吧...

    import re
    import urllib.request
    
    resp = urllib.request.urlopen("https://maoyan.com/board/4?offset=0")
    resp.read().decode("utf-8")
    
    # 确定所爬取的网页
    def load_data(page=1):
        offset = (page - 1) * 10
        url = "https://maoyan.com/board/4?offset=" + str(offset)
        resp = urllib.request.urlopen(url)
        return resp.read().decode("utf-8")
    
    #根据我们的观察,猫眼电影的首页只有10部电影推荐,因此,我们需要转到下一页。
    
    # 网页的地址变化
    html = load_data(10)
    
    def load_ranking(html):
        reg = '<dd.*?<i.*?>(.*?)</i>'
        return re.findall(reg, html, re.S)
    
    # 爬取电影名称
    def load_name(html):
        reg = '<dd.*?<p\sclass="name".*?><a.*?>(.*?)</a>'
        return re.findall(reg, html, re.S)
    
    # 爬取主演者都有谁
    def load_info(html):
        reg = '<dd.*?<div\sclass="board-item-main".*?<p\sclass="star".*?>(.*?)</p>'
        rs = re.findall(reg, html, re.S)
        return list(map(str.strip, rs))
    
    # 爬取上映时间
    def load_time(html):
        reg = '<dd.*?<div\sclass="board-item-main".*?<p\sclass="releasetime".*?>(.*?)</p>'
        rs = re.findall(reg, html, re.S)
        return list(map(str.strip, rs))
    
    # 爬取该电影分数
    def load_score(html):
        reg = '<dd.*?<p\sclass="releasetime".*?<i\sclass="integer".*?>(.*?)</i>'
        iteger = re.findall(reg, html, re.S)
    
        reg_frag = '<dd.*?<p\sclass="releasetime".*?<i\sclass="fraction".*?>(.*?)</i>'
        fraction = re.findall(reg_frag, html, re.S)
        score = list(zip(iteger, fraction))
        rs = map(lambda x: str(x[0]) + str(x[1]), score)
        return list(rs)
    
    # 将爬取的内容存放在一个名称为top.txt的文本文件中;
    def save_file(html):
        records = zip(load_ranking(html), load_name(html), load_info(html), load_time(html), load_score(html))
        infos = list(records)
    
        with open("top.txt", 'a+') as f:
            for line in infos:
                data = "】\t【".join(line)
    
                print(data)
                f.writelines(data)
                # 换行
                f.write("】\n")
    
    save_file(html)
    

    想看啥...这里都有:
    【猫眼排名】 【电影名称】【主演】【上映时间】【评分】

    1】 【霸王别姬】 【主演:张国荣,张丰毅,巩俐】 【上映时间:1993-01-01】 【9.5】
    2】 【肖申克的救赎】 【主演:蒂姆·罗宾斯,摩根·弗里曼,鲍勃·冈顿】 【上映时间:1994-09-10(加拿大)】 【9.5】
    3】 【罗马假日】 【主演:格利高里·派克,奥黛丽·赫本,埃迪·艾伯特】 【上映时间:1953-09-02(美国)】 【9.1】
    4】 【这个杀手不太冷】 【主演:让·雷诺,加里·奥德曼,娜塔莉·波特曼】 【上映时间:1994-09-14(法国)】 【9.5】
    5】 【泰坦尼克号】 【主演:莱昂纳多·迪卡普里奥,凯特·温丝莱特,比利·赞恩】 【上映时间:1998-04-03】 【9.5】
    6】 【唐伯虎点秋香】 【主演:周星驰,巩俐,郑佩佩】 【上映时间:1993-07-01(中国香港)】 【9.1】
    7】 【魂断蓝桥】 【主演:费雯·丽,罗伯特·泰勒,露塞尔·沃特森】 【上映时间:1940-05-17(美国)】 【9.2】
    8】 【乱世佳人】 【主演:费雯·丽,克拉克·盖博,奥利维娅·德哈维兰】 【上映时间:1939-12-15(美国)】 【9.1】
    9】 【天空之城】 【主演:寺田农,鹫尾真知子,龟山助清】 【上映时间:1992】 【9.1】
    10】 【辛德勒的名单】 【主演:连姆·尼森,拉尔夫·费因斯,本·金斯利】 【上映时间:1993-12-15(美国)】 【9.2】
    11】 【喜剧之王】 【主演:周星驰,莫文蔚,张柏芝】 【上映时间:1999-02-13(中国香港)】 【9.1】
    12】 【大闹天宫】 【主演:邱岳峰,毕克,富润生】 【上映时间:1965-12-31】 【9.0】
    13】 【音乐之声】 【主演:朱莉·安德鲁斯,克里斯托弗·普卢默,埃琳诺·帕克】 【上映时间:1965-03-02(美国)】 【9.0】
    14】 【春光乍泄】 【主演:张国荣,梁朝伟,张震】 【上映时间:1997-05-30(中国香港)】 【9.2】
    15】 【剪刀手爱德华】 【主演:约翰尼·德普,薇诺娜·瑞德,黛安·韦斯特】 【上映时间:1990-12-06(美国)】 【8.8】
    16】 【美丽人生】 【主演:罗伯托·贝尼尼,尼可莱塔·布拉斯基,乔治·坎塔里尼】 【上映时间:1997-12-20(意大利)】 【9.3】
    17】 【海上钢琴师】 【主演:蒂姆·罗斯,普路特·泰勒·文斯,比尔·努恩】 【上映时间:1998-10-28(意大利)】 【9.2】
    18】 【黑客帝国】 【主演:基努·里维斯,凯瑞-安·莫斯,劳伦斯·菲什伯恩】 【上映时间:2000-01-14】 【9.0】
    19】 【指环王3:王者无敌】 【主演:伊莱贾·伍德,伊恩·麦克莱恩,丽芙·泰勒】 【上映时间:2004-03-15】 【9.2】
    20】 【哈利·波特与魔法石】 【主演:丹尼尔·雷德克里夫,鲁伯特·格林特,艾玛·沃特森】 【上映时间:2002-01-26】 【9.1】
    21】 【楚门的世界】 【主演:金·凯瑞,劳拉·琳妮,诺亚·艾默里奇】 【上映时间:1998-06-01(美国)】 【8.9】
    22】 【加勒比海盗】 【主演:约翰尼·德普,凯拉·奈特莉,奥兰多·布鲁姆】 【上映时间:2003-11-21】 【8.9】
    23】 【射雕英雄传之东成西就】 【主演:张国荣,梁朝伟,张学友】 【上映时间:1993-02-05(中国香港)】 【8.9】
    24】 【无间道】 【主演:刘德华,梁朝伟,黄秋生】 【上映时间:2003-09-05】 【9.1】
    25】 【教父2】 【主演:阿尔·帕西诺,罗伯特·德尼罗,黛安·基顿】 【上映时间:1974-12-12(美国)】 【9.0】
    26】 【蝙蝠侠:黑暗骑士】 【主演:克里斯蒂安·贝尔,希斯·莱杰,阿伦·伊克哈特】 【上映时间:2008-07-18(美国)】 【9.3】
    27】 【机器人总动员】 【主演:本·贝尔特,艾丽莎·奈特,杰夫·格尔林】 【上映时间:2008-06-27(美国)】 【9.3】
    28】 【指环王1:护戒使者】 【主演:伊莱贾·伍德,伊恩·麦克莱恩,丽芙·泰勒】 【上映时间:2002-04-04】 【9.0】
    29】 【指环王2:双塔奇兵】 【主演:伊莱贾·伍德,伊恩·麦克莱恩,丽芙·泰勒】 【上映时间:2003-04-25】 【9.1】
    30】 【天堂电影院】 【主演:菲利浦·诺瓦雷,赛尔乔·卡斯特利托,蒂兹亚娜·罗达托】 【上映时间:1988-11-17(意大利)】 【9.2】
    31】 【活着】 【主演:葛优,巩俐,牛犇】 【上映时间:1994-05-18(法国)】 【9.0】
    32】 【狮子王】 【主演:马修·布罗德里克,尼基塔·卡兰姆,詹姆斯·厄尔·琼斯】 【上映时间:1995-07-15】 【8.8】
    33】 【拯救大兵瑞恩】 【主演:汤姆·汉克斯,马特·达蒙,汤姆·塞兹摩尔】 【上映时间:1998-11-13】 【8.9】
    34】 【哈尔的移动城堡】 【主演:倍赏千惠子,木村拓哉,美轮明宏】 【上映时间:2004-11-20(日本)】 【9.0】
    35】 【忠犬八公的故事】 【主演:Forest,理查·基尔,琼·艾伦】 【上映时间:2010-03-12(英国)】 【9.3】
    36】 【疯狂原始人】 【主演:尼古拉斯·凯奇,艾玛·斯通,瑞安·雷诺兹】 【上映时间:2013-04-20】 【9.5】
    37】 【阿凡达】 【主演:萨姆·沃辛顿,佐伊·索尔达娜,米歇尔·罗德里格兹】 【上映时间:2010-01-04】 【9.1】
    38】 【盗梦空间】 【主演:莱昂纳多·迪卡普里奥,渡边谦,约瑟夫·高登-莱维特】 【上映时间:2010-09-01】 【9.2】
    39】 【幽灵公主】 【主演:松田洋治,石田百合子,田中裕子】 【上映时间:1998-05-01】 【8.9】
    40】 【东邪西毒】 【主演:张国荣,梁朝伟,刘嘉玲】 【上映时间:1994-09-17】 【8.8】
    41】 【搏击俱乐部】 【主演:爱德华·哈里森·诺顿,布拉德·皮特,海伦娜·伯翰·卡特】 【上映时间:1999-10-15(美国)】 【8.8】
    42】 【风之谷】 【主演:岛本须美,永井一郎,坂本千夏】 【上映时间:1992】 【8.9】
    43】 【V字仇杀队】 【主演:娜塔莉·波特曼,雨果·维文,斯蒂芬·瑞】 【上映时间:2006-03-17(美国)】 【8.8】
    44】 【十二怒汉】 【主演:亨利·方达,李·科布,马丁·鲍尔萨姆】 【上映时间:1957-04-13(美国)】 【9.1】
    45】 【当幸福来敲门】 【主演:威尔·史密斯,贾登·史密斯,坦迪·牛顿】 【上映时间:2008-01-17】 【8.9】
    46】 【驯龙高手】 【主演:杰伊·巴鲁切尔,杰拉德·巴特勒,亚美莉卡·费雷拉】 【上映时间:2010-05-14】 【9.0】
    47】 【速度与激情5】 【主演:范·迪塞尔,保罗·沃克,道恩·强森】 【上映时间:2011-05-12】 【9.2】
    48】 【放牛班的春天】 【主演:热拉尔·朱尼奥,让-巴蒂斯特·莫尼耶,玛丽·布奈尔】 【上映时间:2004-10-16】 【8.8】
    49】 【勇敢的心】 【主演:梅尔·吉布森,苏菲·玛索,帕特里克·麦高汉】 【上映时间:1995-05-24(美国)】 【8.8】
    50】 【闻香识女人】 【主演:阿尔·帕西诺,克里斯·奥唐纳,加布里埃尔·安瓦尔】 【上映时间:1992-12-23(美国)】 【8.8】
    51】 【三傻大闹宝莱坞】 【主演:阿米尔·汗,黄渤,卡琳娜·卡普】 【上映时间:2011-12-08】 【9.1】
    52】 【黑客帝国3:矩阵革命】 【主演:基努·里维斯,雨果·维文,凯瑞-安·莫斯】 【上映时间:2003-11-05】 【8.8】
    53】 【断背山】 【主演:希斯·莱杰,杰克·吉伦哈尔,米歇尔·威廉姆斯】 【上映时间:2006-01-13(美国)】 【9.0】
    54】 【神偷奶爸】 【主演:史蒂夫·卡瑞尔,杰森·席格尔,拉塞尔·布兰德】 【上映时间:2010-07-09(美国)】 【9.0】
    55】 【少年派的奇幻漂流】 【主演:苏拉·沙玛,伊尔凡·可汗,塔布】 【上映时间:2012-11-22】 【9.1】
    56】 【飞屋环游记】 【主演:爱德华·阿斯纳,乔丹·长井,鲍勃·彼德森】 【上映时间:2009-08-04】 【8.9】
    57】 【鬼子来了】 【主演:姜文,姜宏波,陈强】 【上映时间:2000-05-12(法国戛纳)】 【8.9】
    58】 【末代皇帝】 【主演:尊龙,陈冲,彼得·奥图尔】 【上映时间:1987-10-23】 【8.8】
    59】 【大话西游之月光宝盒】 【主演:周星驰,莫文蔚,吴孟达】 【上映时间:2014-10-24】 【9.6】
    60】 【怦然心动】 【主演:玛德琳·卡罗尔,卡兰·麦克奥利菲,艾丹·奎因】 【上映时间:2010-08-06(美国)】 【8.9】
    61】 【致命魔术】 【主演:休·杰克曼,克里斯蒂安·贝尔,迈克尔·凯恩】 【上映时间:2006-10-20(美国)】 【8.8】
    62】 【美丽心灵】 【主演:罗素·克洛,詹妮弗·康纳利,艾德·哈里斯】 【上映时间:2001-12-21(美国)】 【8.8】
    63】 【无敌破坏王】 【主演:约翰·C·赖利,萨拉·西尔弗曼,简·林奇】 【上映时间:2012-11-06】 【9.1】
    64】 【倩女幽魂】 【主演:张国荣,王祖贤,午马】 【上映时间:2011-04-30】 【9.2】
    65】 【夜访吸血鬼】 【主演:汤姆·克鲁斯,布拉德·皮特,克尔斯滕·邓斯特】 【上映时间:1994-11-11(美国)】 【8.8】
    66】 【蝙蝠侠:黑暗骑士崛起】 【主演:克里斯蒂安·贝尔,迈克尔·凯恩,加里·奥德曼】 【上映时间:2012-08-27】 【8.9】
    67】 【钢琴家】 【主演:艾德里安·布洛迪,艾米莉娅·福克斯,米哈乌·热布罗夫斯基】 【上映时间:2002-09-25(法国)】 【8.8】
    68】 【哈利·波特与死亡圣器(下)】 【主演:丹尼尔·雷德克里夫,鲁伯特·格林特,艾玛·沃特森】 【上映时间:2011-08-04】 【9.0】
    69】 【本杰明·巴顿奇事】 【主演:布拉德·皮特,凯特·布兰切特,塔拉吉·P·汉森】 【上映时间:2008-12-25(美国)】 【8.8】
    70】 【甜蜜蜜】 【主演:黎明,张曼玉,曾志伟】 【上映时间:2015-02-13】 【9.2】
    71】 【初恋这件小事】 【主演:马里奥·毛瑞尔,平采娜·乐维瑟派布恩,阿查拉那·阿瑞亚卫考】 【上映时间:2012-06-05】 【8.8】
    72】 【触不可及】 【主演:弗朗索瓦·克鲁塞,奥玛·希,安娜·勒尼】 【上映时间:2011-11-02(法国)】 【9.1】
    73】 【新龙门客栈】 【主演:张曼玉,梁家辉,甄子丹】 【上映时间:2012-02-24】 【8.8】
    74】 【熔炉】 【主演:孔刘,郑有美,金智英】 【上映时间:2011-09-22(韩国)】 【8.8】
    75】 【大话西游之大圣娶亲】 【主演:周星驰,朱茵,莫文蔚】 【上映时间:2014-10-24】 【8.8】
    76】 【小鞋子】 【主演:默罕默德·阿米尔·纳吉,Kamal Mirkarimi,Behzad Rafi】 【上映时间:1999-01-22(美国)】 【9.0】
    77】 【教父】 【主演:马龙·白兰度,阿尔·帕西诺,詹姆斯·肯恩】 【上映时间:2015-04-18】 【9.3】
    78】 【素媛】 【主演:李来,薛耿求,严志媛】 【上映时间:2013-10-02(韩国)】 【9.1】
    79】 【萤火之森】 【主演:内山昂辉,佐仓绫音,后藤弘树】 【上映时间:2011-09-17(日本)】 【9.0】
    80】 【穿条纹睡衣的男孩】 【主演:阿沙·巴特菲尔德,维拉·法梅加,大卫·休里斯】 【上映时间:2008-09-12(英国)】 【9.0】
    81】 【窃听风暴】 【主演:乌尔里希·穆埃,塞巴斯蒂安·科赫,马蒂娜·格德克】 【上映时间:2006-03-23(德国)】 【9.0】
    82】 【时空恋旅人】 【主演:瑞秋·麦克亚当斯,多姆纳尔·格里森,比尔·奈伊】 【上映时间:2013-09-04(英国)】 【8.9】
    83】 【7号房的礼物】 【主演:柳承龙,郑镇荣,朴信惠】 【上映时间:2013-01-23(韩国)】 【8.9】
    84】 【恐怖直播】 【主演:河正宇,李璟荣,李大为】 【上映时间:2013-07-31(韩国)】 【8.8】
    85】 【海豚湾】 【主演:里克·奥巴瑞,路易·西霍尤斯,哈迪·琼斯】 【上映时间:2009-07-31(美国)】 【8.9】
    86】 【忠犬八公物语】 【主演:仲代达矢,春川真澄,井川比佐志】 【上映时间:1987-08-01(日本)】 【9.0】
    87】 【辩护人】 【主演:宋康昊,郭度沅,吴达洙】 【上映时间:2013-12-18(韩国)】 【8.8】
    88】 【上帝之城】 【主演:亚历桑德雷·罗德里格斯,艾莉丝·布拉加,莱安德鲁·菲尔米诺】 【上映时间:2002-08-30(巴西)】 【8.9】
    89】 【美国往事】 【主演:罗伯特·德尼罗,詹姆斯·伍兹,伊丽莎白·麦戈文】 【上映时间:2015-04-23】 【9.1】
    90】 【七武士】 【主演:三船敏郎,志村乔,千秋实】 【上映时间:1954-04-26(日本)】 【9.1】
    91】 【完美的世界】 【主演:凯文·科斯特纳,克林特·伊斯特伍德,T·J·劳瑟】 【上映时间:1993-11-24(美国)】 【8.9】
    92】 【一一】 【主演:吴念真,金燕玲,李凯莉】 【上映时间:2000-09-20(法国)】 【8.9】
    93】 【英雄本色】 【主演:狄龙,张国荣,周润发】 【上映时间:2017-11-17】 【9.1】
    94】 【爱·回家】 【主演:俞承豪,金艺芬,童孝熙】 【上映时间:2002-04-05(韩国)】 【9.0】
    95】 【海洋】 【主演:雅克·贝汉,姜文,兰斯洛特·佩林】 【上映时间:2011-08-12】 【9.0】
    96】 【我爱你】 【主演:宋在浩,李顺才,尹秀晶】 【上映时间:2011-02-17(韩国)】 【9.0】
    97】 【黄金三镖客】 【主演:克林特·伊斯特伍德,李·范·克里夫,埃里·瓦拉赫】 【上映时间:1966-12-23(意大利)】 【8.9】
    98】 【迁徙的鸟】 【主演:雅克·贝汉,Philippe Labro】 【上映时间:2001-12-12(法国)】 【9.1】
    99】 【龙猫】 【主演:秦岚,糸井重里,岛本须美】 【上映时间:2018-12-14】 【9.1】
    100】 【千与千寻】 【主演:柊瑠美,周冬雨,入野自由】 【上映时间:2019-06-21】 【9.3】

    【代码的不足之处】:每次只能抓取10部电影的排名,名称,主演,上映时间,以及评分;上述的100部电影我一次性列出,是想有时间嫩吧自己没看的补上。

    相关文章

      网友评论

        本文标题:python 关于正则表达式的运用-猫眼电影的爬取

        本文链接:https://www.haomeiwen.com/subject/oijdhctx.html