zoukankan      html  css  js  c++  java
  • Python 爬取猫眼电影最受期待榜

        主要爬取猫眼电影最受期待榜的电影排名、图片链接、名称、主演、上映时间。

      思路:1.定义一个获取网页源代码的函数;

         2.定义一个解析网页源代码的函数;

         3.定义一个将解析的数据保存为本地文件的函数;

         4.定义主函数;

         5.使用多进程爬取。

    步骤一:首先,导入相关的库:

    import requests
    import re
    import  json
    from multiprocessing import Pool
    from requests.exceptions import RequestException

    步骤二:定义获取网页源代码的函数,这里使用 requests.get() 方法来获取,并调用异常处理方法:

    def get_one_page(url):
        response = requests.get(url)
        try:
            if response.status_code == 200:
                return response.text
            return None
        except RequestException:
            return None

    步骤三:定义一个函数,利用正则表达式 re.findall() 等函数解析网页源代码,并利用 yield 生成器对解析的代码进行排布,转换为字典形式:

    def parse_one_page(html):
        pattern = re.compile('<dd>.*?board-index.*?">(d+)</i>.*?data-src="(.*?)".*?</a>.*?'
                             + '<a.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>.*?</dd>', re.S)
        items = re.findall(pattern, html)
        for item in items:
            yield {
                '排名': item[0],
                '图片': item[1],
                '名称': item[2],
                '主演': item[3].strip()[3:],
                '上映时间': item[4].strip()[5:]
            }

    步骤四:定义主函数,爬取最受期待榜的 n 页:

    def main(offset):
        url = 'https://maoyan.com/board/6?offset=' +str(offset)
        html = get_one_page(url)
        for item in parse_one_page(html):
            print(item)
            write_one_page(item)

    步骤五:多进程爬取,定义进程池,并调用 Pool.map() 方法进行多进程爬取,提高爬取效率:

    if __name__ == "__main__":
        pool = Pool()
        pool.map(main, [i*10 for i in range(10)])

    爬取的部分数据如下:

  • 相关阅读:
    tcp连接建立和断开
    端口状态说明 LISTENING、ESTABLISHED、TIME_WAIT及CLOSE_WAIT
    window IIS6/IIS7取消脚本执行权限,禁止运行脚本木马
    java 各种架构图汇总
    .NET平台常见技术框架整理汇总
    SQL Server中的Merge Into
    iText从LGPL改成AGPL历史来龙去脉
    工具系列 | 分布式日志管理graylog 实战
    目前博客使用的主题模板
    RLChina 文章
  • 原文地址:https://www.cnblogs.com/weixuqin/p/7354722.html
Copyright © 2011-2022 走看看