美文网首页
python爬虫15: Requests+正则表达式爬取猫眼电影

python爬虫15: Requests+正则表达式爬取猫眼电影

作者: dc630f46ee2d | 来源:发表于2017-11-12 19:10 被阅读0次

    预备知识

    if name == 'main'作用

    在很多python模块中常常看到这样写。

    if __name__ == '__main__':
        doSomeThing()
    

    不知道if '__name__ == __main' 作用是使什么,实际上是我对import module产生的效果不理解。
    我用两个文件来实验一下,文件A名A.py 源代码叫如下

    import  requests
    import  requests.exceptions
    
    
    
    def get_one_page(url):
        response = requests.get(url)
    
        try:
            if  response.status_code  == 200:
              return response.text
            else:
              return  None
        except RequestException:
            return None
    
    def main():
        url = 'http://http://maoyan.com/board/4?'
        print(url)
    
    if  1:
        main()
    

    文件B简单的一行代码,import A文件

    import  A
    

    只运行文件B,发现输出

    http://http://maoyan.com/board/4?
    

    和 objective-c的import 不一样,python的文件被import后还会执行其中的代码调用。一般情况下我们不需要这种被import 后就马上执行,但是如果代码调用在当前文件中书写又马上执行的情况下。就轮到if '__name__ == __main___'出场了。__name__是一个每个python内置的变量。运行文件A时,A中__name__变量值就是__main__。如果文件B import文件A,运行B的时候会执行A的代码,此时,A中的__name__的值就是A.py.因此可以达到函数调用只在当前类可以调用的目的。有点类似 隐藏函数作用域只在当前文件的意思。

    步长不为1的for循环

    for i in Range(1, 10): ----> for(int i = 1; i < 10; i++)
    for j in Range(1, 10, 2): ----> for(int j = 1; j < 10; j=j+2)
    

    关于re.findall的细节

    re.findall 输出一个List。如果不匹配目标(表达式用()分隔出的内容),那么List成员就是str,如果匹配目标,List的成员时tuple,tuple的每个元素是str

    提取目标分析和经验总结

    使用网页和request.get方法得到的结果并不完全一致,有可能html元素标签的属性排列顺序发生变化。影响我们正则的书写。最好是自己print(response.text)后分析输出文本会合理一点。另外在浏览器中访问正常不代表使用requests库就可以正常访问。如果不带上requestHeader 服务器可能会判断是爬虫操作而不返回正常的数据。因为也要结合print(response.text)查看是否正确的得到了响应数据。

    查看要抓取的元素可以借助chrome的检查的审查元素工具。


    屏幕快照 2017-11-12 下午6.54.07.png

    代码

    import  requests
    import  re
    import  requests.exceptions
    
    def get_one_page(url):
        dict = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'}
        response = requests.get(url,headers = dict)
        try:
            if  response.status_code  == 200:
              html =  response.text
              pattern = '<dd>.*?<a href=.*?title="(.*?)".*?<img data-src="(.*?)".*?/>.*?</dd>'
              results = re.findall(pattern, html, re.S)
              for result in results:
                  print(result[0], result[1])
                  img = requests.get(result[1])
                  with open(result[0] + '.jpg', 'wb') as f:
                      f.write(img.content)
    
        except ConnectionError:
            return None
    
    def get_page_count(count, host):
       for i in range(0, 100, 10):
           param = 'offset=' + str(i)
           current_url = host + param
           get_one_page(current_url)
    
    
    def main():
        url = 'http://maoyan.com/board/4?'
        get_page_count(100, url)
    
    if __name__ == '__main__':
        main()
    
    

    输出结果

    霸王别姬 http://p1.meituan.net/movie/20803f59291c47e1e116c11963ce019e68711.jpg@160w_220h_1e_1c
    肖申克的救赎 http://p0.meituan.net/movie/__40191813__4767047.jpg@160w_220h_1e_1c
    罗马假日 http://p0.meituan.net/movie/23/6009725.jpg@160w_220h_1e_1c
    这个杀手不太冷 http://p0.meituan.net/movie/fc9d78dd2ce84d20e53b6d1ae2eea4fb1515304.jpg@160w_220h_1e_1c
    教父 http://p0.meituan.net/movie/92/8212889.jpg@160w_220h_1e_1c
    泰坦尼克号 http://p0.meituan.net/movie/11/324629.jpg@160w_220h_1e_1c
    龙猫 http://p0.meituan.net/movie/99/678407.jpg@160w_220h_1e_1c
    唐伯虎点秋香 http://p0.meituan.net/movie/62/109878.jpg@160w_220h_1e_1c
    千与千寻 http://p0.meituan.net/movie/9bf7d7b81001a9cf8adbac5a7cf7d766132425.jpg@160w_220h_1e_1c
    魂断蓝桥 http://p0.meituan.net/movie/12/8506449.jpg@160w_220h_1e_1c
    喜剧之王 http://p0.meituan.net/movie/59/2366463.jpg@160w_220h_1e_1c
    天空之城 http://p0.meituan.net/movie/24/4495986.jpg@160w_220h_1e_1c
    大闹天宫 http://p1.meituan.net/movie/__40531360__1435186.jpg@160w_220h_1e_1c
    乱世佳人 http://p0.meituan.net/movie/13/6960141.jpg@160w_220h_1e_1c
    辛德勒的名单 http://p0.meituan.net/movie/88/6673874.jpg@160w_220h_1e_1c
    剪刀手爱德华 http://p0.meituan.net/movie/20/567725.jpg@160w_220h_1e_1c
    音乐之声 http://p0.meituan.net/movie/76/8189714.jpg@160w_220h_1e_1c
    春光乍泄 http://p0.meituan.net/movie/18/6251213.jpg@160w_220h_1e_1c
    海上钢琴师 http://p0.meituan.net/movie/37/4457598.jpg@160w_220h_1e_1c
    黑客帝国 http://p0.meituan.net/movie/93/7071610.jpg@160w_220h_1e_1c
    美丽人生 http://p0.meituan.net/movie/5bef87296178cc0c0946f9c352ca267a119592.jpg@160w_220h_1e_1c
    指环王3:王者无敌 http://p0.meituan.net/movie/5ab34fd790f2970512ee7668cf73f04f110032.jpg@160w_220h_1e_1c
    加勒比海盗 http://p0.meituan.net/movie/88/3864695.jpg@160w_220h_1e_1c
    无间道 http://p1.meituan.net/movie/__42975419__9836378.jpg@160w_220h_1e_1c
    射雕英雄传之东成西就 http://p1.meituan.net/movie/53b6f0b66882a53b08896c92076515a8236400.jpg@160w_220h_1e_1c
    蝙蝠侠:黑暗骑士 http://p1.meituan.net/movie/75bd869f7224871c5ebf781720cf456e117189.jpg@160w_220h_1e_1c
    哈利·波特与魔法石 http://p1.meituan.net/movie/aacb9ed2a6601bfe515ef0970add1715623792.jpg@160w_220h_1e_1c
    楚门的世界 http://p0.meituan.net/movie/84/3686822.jpg@160w_220h_1e_1c
    指环王2:双塔奇兵 http://p0.meituan.net/movie/e3285cf6ed5395777433e8be5fd0078087787.jpg@160w_220h_1e_1c
    机器人总动员 http://p0.meituan.net/movie/53/930936.jpg@160w_220h_1e_1c
    教父2 http://p0.meituan.net/movie/4/9978669.jpg@160w_220h_1e_1c
    活着 http://p0.meituan.net/movie/53/1819401.jpg@160w_220h_1e_1c
    拯救大兵瑞恩 http://p0.meituan.net/movie/32/595031.jpg@160w_220h_1e_1c
    天堂电影院 http://p0.meituan.net/movie/11/295014.jpg@160w_220h_1e_1c
    阿飞正传 http://p0.meituan.net/movie/75/9117168.jpg@160w_220h_1e_1c
    盗梦空间 http://p1.meituan.net/movie/4faf9749d2014b7cc94331a38d848f99132123.jpg@160w_220h_1e_1c
    哈尔的移动城堡 http://p0.meituan.net/movie/__42975603__8516905.jpg@160w_220h_1e_1c
    搏击俱乐部 http://p1.meituan.net/movie/c5e76795bf7a78b12a2ffabb4a0c5c11112921.jpg@160w_220h_1e_1c
    幽灵公主 http://p0.meituan.net/movie/9/1476994.jpg@160w_220h_1e_1c
    忠犬八公的故事 http://p0.meituan.net/movie/d54305f773c25fd0e4070249c3eccb83112381.jpg@160w_220h_1e_1c
    东邪西毒 http://p0.meituan.net/movie/75b308e3a8e4f691d29cb45f84d7b5c4104321.jpg@160w_220h_1e_1c
    放牛班的春天 http://p0.meituan.net/movie/__38288284__4749195.jpg@160w_220h_1e_1c
    风之谷 http://p0.meituan.net/movie/77/5392065.jpg@160w_220h_1e_1c
    V字仇杀队 http://p0.meituan.net/movie/57/5832292.jpg@160w_220h_1e_1c
    阿凡达 http://p0.meituan.net/movie/54/868271.jpg@160w_220h_1e_1c
    黑客帝国3:矩阵革命 http://p1.meituan.net/movie/0f9f10b52df5bf346632353d6600e00b133155.jpg@160w_220h_1e_1c
    疯狂原始人 http://p0.meituan.net/movie/__7457113__8454111.jpg@160w_220h_1e_1c
    当幸福来敲门 http://p0.meituan.net/movie/50/821132.jpg@160w_220h_1e_1c
    十二怒汉 http://p0.meituan.net/movie/86/2992612.jpg@160w_220h_1e_1c
    勇敢的心 http://p0.meituan.net/movie/16/2004356.jpg@160w_220h_1e_1c
    驯龙高手 http://p0.meituan.net/movie/44/637726.jpg@160w_220h_1e_1c
    神偷奶爸 http://p0.meituan.net/movie/41/529773.jpg@160w_220h_1e_1c
    飞屋环游记 http://p0.meituan.net/movie/62/499239.jpg@160w_220h_1e_1c
    速度与激情5 http://p0.meituan.net/movie/30/380718.jpg@160w_220h_1e_1c
    致命魔术 http://p0.meituan.net/movie/12/2130469.jpg@160w_220h_1e_1c
    怦然心动 http://p0.meituan.net/movie/17/6995038.jpg@160w_220h_1e_1c
    断背山 http://p0.meituan.net/movie/19/9277847.jpg@160w_220h_1e_1c
    三傻大闹宝莱坞 http://p0.meituan.net/movie/44/43.jpg@160w_220h_1e_1c
    飞越疯人院 http://p0.meituan.net/movie/55/9750194.jpg@160w_220h_1e_1c
    闻香识女人 http://p0.meituan.net/movie/67/8094010.jpg@160w_220h_1e_1c
    大话西游之月光宝盒 http://p0.meituan.net/movie/7/2144189.jpg@160w_220h_1e_1c
    鬼子来了 http://p0.meituan.net/movie/d81e2aeecebce01472434b09b46bc56c136075.jpg@160w_220h_1e_1c
    美国往事 http://p0.meituan.net/movie/18/9569613.jpg@160w_220h_1e_1c
    美丽心灵 http://p0.meituan.net/movie/91/5305842.jpg@160w_220h_1e_1c
    蝙蝠侠:黑暗骑士崛起 http://p1.meituan.net/movie/3fd701f5bfa9f8acddfe407949fd9104143897.jpg@160w_220h_1e_1c
    夜访吸血鬼 http://p0.meituan.net/movie/36/6065251.jpg@160w_220h_1e_1c
    少年派的奇幻漂流 http://p0.meituan.net/movie/95/985283.jpg@160w_220h_1e_1c
    无敌破坏王 http://p0.meituan.net/movie/65/249948.jpg@160w_220h_1e_1c
    钢琴家 http://p0.meituan.net/movie/36/7289043.jpg@160w_220h_1e_1c
    哈利·波特与死亡圣器(下) http://p0.meituan.net/movie/76/612928.jpg@160w_220h_1e_1c
    本杰明·巴顿奇事 http://p0.meituan.net/movie/48/2207789.jpg@160w_220h_1e_1c
    倩女幽魂 http://p0.meituan.net/movie/85/3966083.jpg@160w_220h_1e_1c
    初恋这件小事 http://p0.meituan.net/movie/23/912567.jpg@160w_220h_1e_1c
    魔女宅急便 http://p0.meituan.net/movie/98/9126928.jpg@160w_220h_1e_1c
    熔炉 http://p0.meituan.net/movie/40/9791315.jpg@160w_220h_1e_1c
    新龙门客栈 http://p0.meituan.net/movie/94/94.jpg@160w_220h_1e_1c
    触不可及 http://p0.meituan.net/movie/49/7621489.jpg@160w_220h_1e_1c
    大话西游之大圣娶亲 http://p1.meituan.net/movie/28c727b5a79b8bdffe7d98e54a4d512f61385.jpg@160w_220h_1e_1c
    素媛 http://p1.meituan.net/movie/__28022955__8810277.jpg@160w_220h_1e_1c
    甜蜜蜜 http://p1.meituan.net/movie/1a8cde299375b74d0b8b3ad35b071480111623.jpg@160w_220h_1e_1c
    时空恋旅人 http://p0.meituan.net/movie/__18433373__7708791.jpg@160w_220h_1e_1c
    萤火之森 http://p0.meituan.net/movie/51/8002255.jpg@160w_220h_1e_1c
    穿条纹睡衣的男孩 http://p0.meituan.net/movie/52/6711152.jpg@160w_220h_1e_1c
    窃听风暴 http://p0.meituan.net/movie/2/6220032.jpg@160w_220h_1e_1c
    借东西的小人阿莉埃蒂 http://p0.meituan.net/movie/49/4069944.jpg@160w_220h_1e_1c
    海豚湾 http://p0.meituan.net/movie/90/1810122.jpg@160w_220h_1e_1c
    恐怖直播 http://p1.meituan.net/movie/729f8c8d8a5e4036e286a018de70d4ab119653.jpg@160w_220h_1e_1c
    7号房的礼物 http://p1.meituan.net/movie/cf09a7f134015c6429b2329e929d7611150403.jpg@160w_220h_1e_1c
    忠犬八公物语 http://p0.meituan.net/movie/15/9810061.jpg@160w_220h_1e_1c
    上帝之城 http://p0.meituan.net/movie/81/7736439.jpg@160w_220h_1e_1c
    小鞋子 http://p0.meituan.net/movie/74/8352133.jpg@160w_220h_1e_1c
    七武士 http://p0.meituan.net/movie/48/6478311.jpg@160w_220h_1e_1c
    辩护人 http://p0.meituan.net/movie/f31af5ac93e3d59dc07cbf1a993484c5126335.jpg@160w_220h_1e_1c
    一一 http://p0.meituan.net/movie/27/8877229.jpg@160w_220h_1e_1c
    完美的世界 http://p0.meituan.net/movie/86/3880567.jpg@160w_220h_1e_1c
    海洋 http://p0.meituan.net/movie/11/391659.jpg@160w_220h_1e_1c
    爱·回家 http://p0.meituan.net/movie/67/1588237.jpg@160w_220h_1e_1c
    黄金三镖客 http://p0.meituan.net/movie/17/3203826.jpg@160w_220h_1e_1c
    我爱你 http://p0.meituan.net/movie/52/3420293.jpg@160w_220h_1e_1c
    迁徙的鸟 http://p1.meituan.net/movie/__44335138__8470779.jpg@160w_220h_1e_1c
    

    相关文章

      网友评论

          本文标题:python爬虫15: Requests+正则表达式爬取猫眼电影

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