• 豆瓣Top250爬取


    第一次做爬虫项目,真的开心,非常顺利爬出了豆瓣Top250的电影 @^_^@

    自从今年6月份就开始自学python,断断续续一直没好好学。直到看了‘’老男孩python3全栈教育‘’,才有所收获。但是这网上的视频没有给我作业,学了就忘,我大概学了一多半python的基础使用之后,决定自己从爬虫学起。开始看崔庆才的教学视频,这个讲的很快,幸好我有看过许多基础,还能够听懂。不过最好从项目直接入手,回过头来再看崔庆才的基础知识教育,更有利于对爬虫的学习。话不多说,直接上代码。

    import requests
    from requests.exceptions import RequestException
    from multiprocessing import Pool
    import re
    import json
    
    def get_one_page(url):           # 获取网页的 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('<li>.*?<em class="">(d+)</em>.*?<span class="title">(.*?)</span>.*?<div class="star">.*?average">(.*?)</span>.*?</li>',re.S)
        items = re.findall(pattern, html)
        for item in items:
            yield{
                'index':item[0],
                'title':item[1],
                'score':item[2]
            }
    
    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 = 'https://movie.douban.com/top250?start=' + str(offset) + '&filter='  # 共提取10个网页内容
        html = get_one_page(url)     # 每个网页对应的信息代码
        for item in parse_one_page(html):
            print(item)
            write_to_file(item)
    
    if __name__ == '__main__':
        pool = Pool()
        pool.map(main,[i*25 for i in range (10)])

    最关键的函数是 parse_one_page(),所要提取的网页内容都由它决定。视频中的教学是让提取猫眼电影的,但由于猫眼电影访问后的response.status_code = 403,因此访问了豆瓣Top250,提取内容的方法是按照崔庆才的视频学的。

    代码中的  '.*?'  用来代表任何内容,后面的  're.S’ ,说明  '.*?'  可以代替的内容也包括  ‘ ’ 。最后再把提取的内容写到result.txt的文件中就好了 (^__^)

  • 相关阅读:
    win8装oracle 10g 弹出:环境变量path的值超过1023字符,无法设置改值
    Modern UI for WPF 开源项目(3):用模板创建我的第一个Modern UI app
    安装oracle11G,10G时都会出现:注册ocx时出现OLE初始化错误或ocx装载错误对话框
    win8快捷键
    Win7/Win8 系统下安装Oracle 10g 提示“程序异常终止,发生未知错误”的解决方法
    Delphi FireDAC 连接SQL Server一些要注意的地方
    Delphi XE5 for Android (四)
    Delphi D10.X VCL和FireMonkey之间的常见差异介绍
    delphi给App授予权限
    github无法登陆的解决办法
  • 原文地址:https://www.cnblogs.com/zhangguoxv/p/9922016.html
Copyright © 2020-2023  润新知