【发布时间】:2014-10-30 23:45:09
【问题描述】:
我正在尝试使用 scrapy 抓取整个网站。根据 Scarpy 的文档
start_urls - 蜘蛛将开始抓取的 URL 列表, 当没有指定特定的 URL 时。所以,下载的第一页 将是这里列出的那些。后续会生成 URL 依次从起始 URL 中包含的数据开始。
所以根据这个定义,scrapy 应该通过start_urls 下提到的页面上的所有子 url,但它只抓取我指定的 url。我确实指定了Scrapy - Crawl whole website 中提到的规则,但它没有帮助。它只抓取和输出我在 start_urls 中指定的页面。
这是我的代码的 sn-p:
class AcdivocaFirstSpider(scrapy.Spider):
name = "example_sample"
allowed_domains = ["example.org"]
start_urls = ["http://www.example.org/site/id/home"]
rules = rules = [Rule(SgmlLinkExtractor(), callback='parse_item', follow=True)]
def parse(self, response):
filename = response.url.split("/")[-1] #so eg it would name 'home'
open(filename, 'wb').write(response.body)
这会生成一个包含“主页”页面提取的 HTML 数据的单个文件。如何让它从首页开始递归爬取整个网站?
感谢任何帮助。谢谢你。
【问题讨论】:
标签: python scrapy web-crawler