我正在为一个论坛写蜘蛛。我试图以递归方式抓取某个部分的页面。所以我制定了以下规则:
rules = (
Rule (SgmlLinkExtractor(allow=('&order=desc&page=\d'),restrict_xpaths=("//td[@class='navpage']/a"))
,callback='parse_items', follow= True),)
是否可以设置页面限制,以便蜘蛛可以抓取有限数量的页面?例如,从第1页爬到第8页。
答案 0 :(得分:3)
SgmlLinkExtractor
的{{3}}参数采用正则表达式。因此,您可以通过执行以下操作修改允许正则表达式以查找任何数字(\d
)以仅查找范围[1-8]
:
SgmlLinkExtractor(allow=('&order=desc&page=[1-8]'),restrict_xpaths=("//td[@class='navpage']/a"))
,callback='parse_items', follow= True),