zoukankan      html  css  js  c++  java
  • 利用多进程获取猫眼电影top100

    猫眼电影top100 是数据是在加载网页时直接就已经加载了的,所以可以通过requests.get()方法去获取这个url的数据,能过对得到的数据进行分析从而获得top100的数据,

    把获取的数据存入本地文件中.

    代码如下:

    import  requests
    import re
    import json
    from multiprocessing import Pool
    #引用异常处理机制,这个类是所有异常类的超类,所以能全捕捉
    from  requests.exceptions import RequestException
    def get_one_page(url):
        try:
            response=requests.get(url)
            if response.status_code==200:
                return response.text
            return  None
        except RequestException :
            return  None
    
    def parse_one_page(html):
        pattern=re.compile('<dd>.*?board-index.*?(d+)</i>.*?data-src="(.*?)".*?name"><a.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>.*?integer">(.*?)</i>.*?fraction">(.*?)</i>',re.S)
        items=re.findall(pattern,html)
        for item in items:
            yield  {
                "index":item[0],
                "iamge":item[1],
                "title":item[2],
                "actor":item[3].strip()[3:],
                "time":item[4].strip()[5:],
                "score":item[5]+item[6]
            }
    def write_to_file(content):
        with open("result.txt","a",encoding="utf8") as f:
            f.write(json.dumps(content,ensure_ascii=False)+"
    ")
            # f.close() 可以不关
    
    
    def main(offset):
        url="http://maoyan.com/board/4?offset="+str(offset)
        html=get_one_page(url)
        # print(html)
        # parse_one_page(html)
        for item in parse_one_page(html):
            print(item)
            write_to_file(item)
    
        # print(html)
    
    if __name__=="__main__":
        # for i in range(10):
        #     main(i*10)
        # 使用多进程
        pool=Pool()
        pool.map(main,[i*10 for i in range(10)])

    猫眼电影top100每个页面显示10部电影,用offset 来构造网页,

    结果如下:

    github https://github.com/573320328/tools.git

  • 相关阅读:
    Javascript高级篇-Function对象
    Object类、instanceof
    [一]Head First设计模式之【策略模式】(鸭子设计的优化历程)
    匿名内部类
    设计模式之单例模式
    长江商业评论读书笔记
    [转]Freemarker数据类型转换
    面向对象编程——概论(一)
    IP地址处理模块IPy
    系统性能模块psutil
  • 原文地址:https://www.cnblogs.com/liuqianli/p/8337497.html
Copyright © 2011-2022 走看看