Get scrapy抓取整个网站

我正在使用scrapy来爬行我拥有的旧站点,我将下面的代码用作我的spider。我不介意为每个网页或其中包含所有内容的数据库输出文件。但是我确实需要能够使Spider抓取整个内容,而不必输入我当前必须执行的每个网址

import scrapy

class DmozSpider(scrapy.Spider):

name = "dmoz"

allowed_domains = ["www.example.com"]

start_urls = [

"http://www.example.com/contactus"

]

def parse(self, response):

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

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

f.write(response.body)

回答:

要抓取整个网站,你应该使用CrawlSpider而不是scrapy.Spider

这是一个例子

为了你的目的,请尝试使用如下所示的内容:

import scrapy

from scrapy.spiders import CrawlSpider, Rule

from scrapy.linkextractors import LinkExtractor

class MySpider(CrawlSpider):

name = 'example.com'

allowed_domains = ['example.com']

start_urls = ['http://www.example.com']

rules = (

Rule(LinkExtractor(), callback='parse_item', follow=True),

)

def parse_item(self, response):

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

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

f.write(response.body)

以上是 Get scrapy抓取整个网站 的全部内容, 来源链接: utcz.com/qa/411343.html

回到顶部