用Python分析豆瓣电影TOP250,Python爬虫学习之小结

作者: 策略游戏排行  发布:2019-11-11

既然要分析豆瓣电影TOP250用Python分析豆瓣电影TOP250,Python爬虫学习之小结。,

Python爬虫学习(一)概述
Python爬虫学习(二)urllib基础使用
Python爬虫学习(三)urllib进阶使用
Python爬虫学习(四)正则表达式
Python爬虫学习(五)爬取电影排行榜及其图片
Python爬虫学习(六)BeautifulSoup来袭
Python爬虫学习(七)爬取淘女郎
Python爬虫学习(八)爬取知乎关注用户

到目前为止,Python爬虫学习已经写了挺多文章,不过,感觉十四、十五才是亮点,有图为证:

用Python分析豆瓣电影TOP250,Python爬虫学习之小结。用Python分析豆瓣电影TOP250,Python爬虫学习之小结。那么肯定就要把相关的数据采集下来,比如排名、电影名、导演、主演等信息。

Python爬虫学习(九)Requests库初探
Python爬虫学习(十)Requests库探探
用Python分析豆瓣电影TOP250,Python爬虫学习之小结。Python爬虫学习(十一)使用Request爬取猫眼电影排行
用Python分析豆瓣电影TOP250,Python爬虫学习之小结。Python爬虫学习(十二)selenium来了
Python爬虫学习(十三)使用selenium爬取淘宝商品

下载的图片

用Python分析豆瓣电影TOP250,Python爬虫学习之小结。那就肯定使用一下爬虫咯,如果还不会的话,欢迎看之前的文章:

Python爬虫学习(十四)美女写真套图(一)
Python爬虫学习(十五)美女写真套图(二)

词云

Python爬虫学习(一)概述
Python爬虫学习(二)urllib基础使用
用Python分析豆瓣电影TOP250,Python爬虫学习之小结。Python爬虫学习(三)urllib进阶使用
Python爬虫学习(四)正则表达式
Python爬虫学习(五)爬取电影排行榜及其图片
Python爬虫学习(六)BeautifulSoup来袭
Python爬虫学习(七)爬取淘女郎
Python爬虫学习(八)爬取知乎关注用户

此Scrapy篇第一回,那我们就先尝尝鲜,写一个小项目。关于Scrapy的安装,请参考:

算了,还是附上目录吧,分别是:

Python爬虫学习(九)Requests库初探
Python爬虫学习(十)Requests库探探
Python爬虫学习(十一)使用Request爬取猫眼电影排行
Python爬虫学习(十二)selenium来了
Python爬虫学习(十三)使用selenium爬取淘宝商品

如何在Windows下安装Scrapy
Installation guide

Python爬虫学习(一)概述
Python爬虫学习(二)urllib基础使用
Python爬虫学习(三)urllib进阶使用
Python爬虫学习(四)正则表达式
Python爬虫学习(五)爬取电影排行榜及其图片
Python爬虫学习(六)BeautifulSoup来袭
Python爬虫学习(七)爬取淘女郎
Python爬虫学习(八)爬取知乎关注用户

Python爬虫学习(十四)美女写真套图(一)
Python爬虫学习(十五)美女写真套图(二)

我们主要是去抓取:http://quotes.toscrape.com/,这个网站中的名人名言,下面开始表演:

Python爬虫学习(九)Requests库初探
Python爬虫学习(十)Requests库探探
Python爬虫学习(十一)使用Request爬取猫眼电影排行
Python爬虫学习(十二)selenium来了
Python爬虫学习(十三)使用selenium爬取淘宝商品

当然,你也可以使用豆瓣提供的API接口:https://developers.douban.com/wiki/?title=movie_v2,提供的数据比较完整:

创建一个工程

在我们开始爬取之前,需要新建一个Scrapy工程。我们可以先进入任何一个你想存放代码的目录,运行命令:scrapy startproject quotetutorial

创建工程

运行成功后,Scrapy将会在当前目录下自动创建一个名为quotetutorial的文件夹,包括如下的结构:

quotetutorial/
    scrapy.cfg            # deploy configuration file

    quotetutorial/             # project's Python module, you'll import your code from here
        __init__.py

        items.py          # project items definition file

        pipelines.py      # project pipelines file

        settings.py       # project settings file

        spiders/          # a directory where you'll later put your spiders
            __init__.py

Python爬虫学习(十四)美女写真套图(一)
Python爬虫学习(十五)美女写真套图(二)

试了下,这应该是好久之前的信息了,现在调用API返回的数据有些已经没了,而且有调用次数限制,还是自己写爬虫采集信息吧,就当练练手!

第一个Spider

Spider是一个我们在Scrapy用来爬取网页抓取信息的类(统称为Spider),它必须继承scrapy.Spider,并且定义一些方法及属性才能按需工作。比如,提取哪些信息,请求哪些网址等等。

我们可以进入之前的quotetutorial目录中,运行命令:scrapy genspider quotes quotes.toscrape.com,Scrapy按照命令帮我们写好了一个Spider,在子目录spider中可以找到一个名为quotes.py的文件,打开查看:

Spider代码

我们将代码改写如下:

import scrapy


class QuotesSpider(scrapy.Spider):
    name = "quotes"

    def start_requests(self):
        urls = [
            'http://quotes.toscrape.com/page/1/',
            'http://quotes.toscrape.com/page/2/',
        ]
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        page = response.url.split("/")[-2]
        filename = 'quotes-%s.html' % page
        with open(filename, 'wb') as f:
            f.write(response.body)
        self.log('Saved file %s' % filename)

如你所见,我们的Spider继承了scrapy.Spider,并且定义了一些属性和方法。

  • name:标识了这个Spider。在一个项目中,每个Spider的名字必须是独一无二的。
  • start_requests():必须返回一个可迭代对象,比如一个请求的列表或一个生成函数,Scrapy就是从这确定从哪开始爬取的。
  • parse():我们在这个方法中处理发出请求后返回的响应,响应是TextResponse的实例。我们在这个方法中提取所需要的信息,或者找到下一个进行爬取的链接。

番外篇:
为你的pip更换一个国内的镜像源

若不想这么麻烦,也提供采集的数据:https://pan.baidu.com/s/1pMAUr6V

运行爬虫

如何运行刚才我们已经写好的这个小型爬虫呢?

我们可以在quotetutorial目录下,运行命令:scrapy crawl quotes,这条命令将会运行刚刚我们写好的名为quotes的爬虫,Scrapy会“机智地”帮我们发送请求!

运行结果

可以看到,图中有不少有用地信息,比如请求了多少次,请求字节数等等。

查看quotetutorail目录:

多了两个文件,正如代码所示!

最后,“恬不知耻”地打个广告,在Github上建了一个爬虫学习项目,目前还没写完,感兴趣地同学可以去瞅瞅。地址如下:https://github.com/viljw/PythonSpider

以上。

接下来,准备写点Scrapy框架,能够让你不用再去纠结如何请求,如何……,解放你的双手,专注于逻辑即可……

本文由bg游戏资讯发布于策略游戏排行,转载请注明出处:用Python分析豆瓣电影TOP250,Python爬虫学习之小结

关键词: python 我用Python Python爬虫学习 数据-R语

上一篇:一个最小的App
下一篇:没有了