scrapy入门教程

2025-10-22 11:21:44

1、安装Scrapy

推荐使用anaconda,anaconda里面集成了很多关于python科学计算的第三方库,安装非常方便。

使用pip安装

# pip install Scrapy

2、创建项目

创建一个新的Scrapy项目,运行下列命令

# scrapy startproject tutorial

3、该命令将会创建包含下列内容的 tutorial 目录:

这些文件分别是:

scrapy.cfg: 项目的配置文件

tutorial/: 该项目的python模块。之后您将在此加入代码。

tutorial/items.py: 项目中的item文件.

tutorial/pipelines.py: 项目中的pipelines文件.

tutorial/settings.py: 项目的设置文件.

tutorial/spiders/: 放置spider代码的目录.

4、定义Item

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

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

import scrapy

class DmozItem(scrapy.Item):    

    title = scrapy.Field()    

    link = scrapy.Field()    

    desc = scrapy.Field()

5、编写第一个爬虫(Spider)

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 = [        

         "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",       

         "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"   

     ]    

    def parse(self, response):        

    filename = response.url.split("/")[-2]        

    with open(filename, 'wb') as f:            

        f.write(response.body)

6、爬取

进入项目的根目录,执行下列命令启动spider :

scrapy crawl dmoz

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
相关推荐
  • 阅读量:98
  • 阅读量:187
  • 阅读量:167
  • 阅读量:21
  • 阅读量:108
  • 猜你喜欢