所以Python分析豆瓣电影TOP250Python爬虫学习(十六)初窥Scrapy

既要分析豆类电影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,提供的数据较完好:

始建一个工程

当咱们开爬取之前,需要新建一个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

尝试了下,这当是漫漫之前的消息了,现在调用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的实例。我们于这方式中领取所欲之信息,或者找到下一个开展爬取的链接。

万一未思然辛苦,也提供采集的多寡:https://pan.baidu.com/s/1pMAUr6V

运转爬虫

哪运作刚才我们曾写好之斯小型爬虫呢?

咱俩可当quotetutorial目录下,运行命令:scrapy crawl quotes,这漫漫命令将会见运作刚刚我们刻画好的名叫吧quotes的爬虫,Scrapy会“机智地”帮咱发送请求!

运行结果

得望,图被来诸多产生因此地信息,比如要了小坏,请求许节数等等。

查看quotetutorail目录:

大抵了少单文件,正使代码所示!

最后,“恬不知耻”地打只广告,在Github上修建了一个爬虫学习型,目前尚不曾写了,感兴趣地同学可以错过瞅瞅。地址如下:https://github.com/viljw/PythonSpider

以上。

脚就是起来展开小小的的辨析啦,

第一,导入要就此到之包和数:

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

敏感如你,肯定做的较我又好!

小弟先行一步,补片去矣……

以上。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注