如何在crawlspider中调试规则?

时间:2013-01-02 09:07:07

标签: python scrapy

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),
    )

它不遵循我想要的链接,所以如何调试?任何一个例子?

2 个答案:

答案 0 :(得分:5)

您是否尝试过Scrapy parse命令?

scrapy parse <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

答案 1 :(得分:1)

我不相信,我通常不得不让蜘蛛松动并查看它在命令提示符下击中的网站。有时我不能用控件C杀死程序,必须拉起我的任务管理器并终止整个命令提示符。这是一种痛苦。