美文网首页Scrapy
Scrapy入门介绍

Scrapy入门介绍

作者: 爱搞事的喵 | 来源:发表于2018-12-04 10:36 被阅读0次

    1.创建项目

    scrapy startproject tutorial (你要创建的项目名称)

    .创建完成后您的项目具有以下目录结构:


    文件含义:

    • scrapy.cfg: 项目的配置文件
    • tutorial/: 该项目的python模块。之后您将在此加入代码。
    • tutorial/items.py: 项目中的item文件.
    • tutorial/pipelines.py: 项目中的pipelines文件.
    • tutorial/settings.py: 项目的设置文件.
    • tutorial/spiders/: 放置spider代码的目录.

    2.定义Item

    Item 是保存爬取到的数据的容器;其使用方法和python字典类似, 并且提供了额外保护机制来避免拼写错误导致的未定义字段错误。

    类似在ORM中做的一样,您可以通过创建一个 scrapy.Item 类, 并且定义类型为 scrapy.Field 的类属性来定义一个Item。 (如果不了解ORM, 不用担心,您会发现这个步骤非常简单)

    首先根据需要从dmoz.org获取到的数据对item进行建模。 我们需要从dmoz中获取名字,url,以及网站的描述。 对此,在item中定义相应的字段。编辑 tutorial 目录中的 items.py 文件:

    import scrapy
    class DmozItem(scrapy.Item):
        title = scrapy.Field()
        link = scrapy.Field()
        desc = scrapy.Field()
    

    3.编写第一个爬虫

    Spider是用户编写用于从单个网站(或者一些网站)爬取数据的类。

    其包含了一个用于下载的初始URL,如何跟进网页中的链接以及如何分析页面中的内容, 提取生成 item 的方法。

    为了创建一个Spider,您必须继承 scrapy.Spider 类, 且定义以下三个属性:

    • name: 用于区别Spider。 该名字必须是唯一的,您不可以为不同的Spider设定相同的名字。
    • start_urls: 包含了Spider在启动时进行爬取的url列表。 因此,第一个被获取到的页面将是其中之一。 后续的URL则从初始的URL获取到的数据中提取。
    • parse() 是spider的一个方法。 被调用时,每个初始URL完成下载后生成的 Response 对象将会作为唯一的参数传递给该函数。 该方法负责解析返回的数据(response data),提取数据(生成item)以及生成需要进一步处理的URL的 Request 对象。

    以下为我们的第一个Spider代码,保存在 tutorial/spiders 目录下的 dmoz_spider.py 文件中:

    import scrapy
    class DmozSpider(scrapy.Spider):
        name = "dmoz"
        allowed_domains = ["dmoz.org"]
        start_urls = [
            "https://www.baidu.com/"  ]
        def parse(self, response):
           print(response)
    

    4.爬取数据

    在终端执行: scrapy crawl dmoz

    出现下列图片中内容代表成功:


    相关文章

      网友评论

        本文标题:Scrapy入门介绍

        本文链接:https://www.haomeiwen.com/subject/knuycqtx.html