4

scrapy shell 是调试 xpath 表达式的好工具,但是有什么工具或方法可以调试 crawlspider 中的规则吗?这意味着我怎么知道规则按我的意愿工作。

我的规则是:

rules = (
        Rule(SgmlLinkExtractor(allow=r'/search*',restrict_xpaths="//a[@id='pager_page_next']"), follow=False),
        #Rule(SgmlLinkExtractor(allow=r'/chart/[\d]+s$'), callback='parse_toplist_page', follow=True),
    )

它不遵循我想要的链接,那么如何调试?任何例子?

4

2 回答 2

5

您是否尝试过 Scrapyparse命令?

scrapy parse <URL>

<URL>您要测试的 URL在哪里。

它将返回从该 url 提取的所有链接(将被跟踪)。

您可以使用该--noitems参数仅显示链接,并使用该--spider参数明确指定蜘蛛。

scrapy parse <URL> --noitems --spider <MYSPIDER>

有关调试蜘蛛的更多信息,请参阅: http ://doc.scrapy.org/en/latest/topics/debug.html

这个答案由 Pablo hoffman 在用户组中提供:https ://groups.google.com/forum/?fromgroups=#!topic/scrapy-users/tOdk4Xw2Z4Y

于 2013-02-04T22:26:11.603 回答
1

我不这么认为,我通常不得不让蜘蛛松动并在命令提示符下查看它正在访问的站点。有时我无法使用控件 C 来终止程序,而不得不打开我的任务管理器并终止整个命令提示符。这是一种痛苦。

于 2013-01-02T14:34:13.763 回答