Scrapy 学习笔记 - 爬虫类 Spider

参考 http://scrapy-chs.readthedocs.io/zh_CN/0.24/topics/spiders.html

Spider 是一个爬虫类,定义如何爬去网页或网站。可以继承Spider类,进行自定义。

形式如下:

import scrapy
class myFirstSpider(scrapy.Spider):
    name = "myFirst_Spider_Task"  #必须且唯一
    allowed_domains = ["baidu.com"]
    start_urls = ["http://www.baidu.com",]
    
    def parse(self, response):
        filename = response.url.split("/")[-2]
        with open(filename, 'wb') as f:
            f.write(response.body)

一个Spider类 的name,必须且是唯一的。在命令行交互环境中,进入项目目录,可以输入如下命令启动Spider

scrapy crawl spider的name (例如 myFirst_Spider_Task)

allowed_domains ,可选参数,类型是列表(list)。定义了spider允许爬取的域名。默认这个参数是不使用的。要使这个参数有效,需要把OffsiteMiddleware关闭,在setting.py中添加SPIDER_MIDDLEWARES的值

SPIDER_MIDDLEWARES = {
    'scrapy.spidermiddlewares.offsite.OffsiteMiddleware':None,  
或者是
    'scrapy.contrib.spidermiddleware.offsite.OffsiteMiddleware': None,
}

因为scrapy版本不一样,上面两个值需要自行选择。我的版本使用的是scrapy.spidermiddlewares.offsite.OffsiteMiddleware

start_urls,URL列表。当没有制定特定的URL时,spider将从该列表中开始进行爬取。因此,第一个被获取到的页面的URL将是该列表之一。后续的URL将会从获取到的数据中提取。

parse函数,当response没有指定回调函数时,该方法是Scrapy处理下载的response的默认方法。这里可以做一些数据上处理

Spider类还有其他函数可以覆写

start_requests 

make_requests_from_url

log 

closed


猜你喜欢

转载自blog.csdn.net/holdsky/article/details/79359837