Scrapy爬虫无法抓取链接

0 投票
1 回答
849 浏览
提问于 2025-04-16 03:00

我刚接触Scrapy,这里是我用来爬取twistedweb的网站爬虫代码。

class TwistedWebSpider(BaseSpider):

    name = "twistedweb3"
    allowed_domains = ["twistedmatrix.com"]
    start_urls = [
        "http://twistedmatrix.com/documents/current/web/howto/",
    ]
    rules = (
        Rule(SgmlLinkExtractor(),
            'parse',
            follow=True,
        ),
    )
    def parse(self, response):
        print response.url
        filename = response.url.split("/")[-1]
        filename = filename or "index.html"
        open(filename, 'wb').write(response.body)

当我运行 scrapy-ctl.py crawl twistedweb3 时,它只抓取了部分内容。

我获取了 index.html 的内容,尝试使用 SgmlLinkExtractor 来提取链接,结果提取出来的链接是我预期的,但这些链接无法继续访问。

你能告诉我哪里出错了吗?

假设我想获取css和javascript文件,我该怎么做呢?我的意思是,如何获取整个网站的内容?

1 个回答

4

rules 属性是属于 CrawlSpider 的。你应该使用 class MySpider(CrawlSpider) 来定义你的爬虫。同时,当你使用 CrawlSpider 的时候,不要重写 parse 方法,而是要使用 parse_response 或者其他类似的名字。

撰写回答