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

既然要分析豆类电影TOP250

Python爬虫学习(一)概述
Python爬虫学习(二)urllib基础运用
Python爬虫学习(三)urllib进阶使用
Python爬虫学习(四)正则表明式
Python爬虫学习(五)爬取电影名次榜及其图片
Python爬虫学习(六)BeautifulSoup来袭
Python爬虫学习(七)爬取淘女郎
Python爬虫学习(八)爬取今日头条关切用户

那正是说早晚就要把有关的数目搜集下来,比如排行、电影名、导演、主角等音信。

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

那就势必使用一下爬虫咯,假设还不会的话,欢迎看在此之前的篇章:

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

Python爬虫学习(一)概述
Python爬虫学习(二)urllib基础运用
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爬虫学习(十五)美观的女子写真套图(二)

咱俩重点是去抓取:http://quotes.toscrape.com/,这么些网站中的金玉良言,上面初始演出:

当然,你也足以使用豆瓣提供的API接口:https://developers.douban.com/wiki/?title=movie\_v2,提供的数额比较完好:

创制一个工程

在我们早先爬取此前,要求新建2个Scrapy工程。大家得以先进入别的3个您想存放代码的目录,运营命令: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

试了下,这应该是绵长事先的音信了,未来调用API再次回到的数目某个已经没了,而且有调用次数限制,依然要好写爬虫采集音信呢,就当练练手!

第一个Spider

Spider是1个大家在Scrapy用来爬取网页抓取音信的类(统称为Spider),它必须一连scrapy.Spider,并且定义一些主意及品质才能按需工作。比如,提取哪些消息,请求什么网址等等。

我们得以进来前面包车型地铁quotetutorial目录中,运营命令:scrapy genspider quotes quotes.toscrape.com,Scrapy按照指令帮大家写好了1个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。在2个种类中,每种Spider的名字务必是独一无二的。
  • start_requests():必须重回三个可迭代对象,比如一个请求的列表或三个生成函数,Scrapy正是从那鲜明从哪开首爬取的。
  • parse():大家在那一个主意中拍卖发出请求后回来的响应,响应是TextResponse的实例。咱们在那些艺术中提取所要求的音信,可能找到下一个进行爬取的链接。

若不想那样麻烦,也提供采集的多少:https://pan.baidu.com/s/1pMAUr6V

运营爬虫

哪些运维刚才我们早就写好的这几个小型爬虫呢?

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

运维结果

能够见见,图中有为数不少有用地消息,比如请求了有点次,请求字节数等等。

查看quotetutorail目录:

多了三个公文,正如代码所示!

末段,“死皮赖脸”地打个广告,在Github上建了一个爬虫学习项目,近年来还没写完,感兴趣地同学能够去瞅瞅。地址如下:https://github.com/viljw/PythonSpider

以上。

下边就起来展开小小的的分析啦,

第1,导入要用到的包以及数据:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv('douban.csv')

查阅一下:

df.head()

df.tail()

说好的TOP250吧?那即将吐槽一下豆瓣电影TOP250了,有个别链接已经没用了,竟然从未立异,比如说排行20的熔炉。

笔者们让其按豆瓣评分排序,并查看排行前五的摄像:

df.sort_values('豆瓣评分',ascending=False).head()

而豆瓣评分超越9.5的,原来唯有两部:

df[df['豆瓣评分']>9.5]

上榜次数最多的监制们:

df['导演'].value_counts()

越多分析,请参见:http://blog.csdn.net/yifei301/article/details/77529840?locationNum=3&fps=1

灵活如你,肯定做的比自个儿更好!

大哥先行一步,补片去了……

以上。

相关文章