我不能用垃圾堆的规则得到数据

2024-09-29 05:16:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用scrapy做一个spider,如果我不实现任何规则,它就可以工作,但是现在我尝试实现一个规则来获取paginator并刮除所有剩余的页面。但我不知道为什么我做不到。在

卡盘代码:

    allowed_domains = ['guia.bcn.cat']
    start_urls = ['http://guia.bcn.cat/index.php?pg=search&q=*:*']

rules = (
        Rule(SgmlLinkExtractor(allow=("index.php?pg=search&from=10&q=*:*&nr=10"),
        restrict_xpaths=("//div[@class='paginador']",))
        , callback="parse_item", follow=True),)

def parse_item(self, response)
...

同时,我试着设置“索引.php但在规则中都不允许。在

我在垃圾组里读到我没有放“a/”或“a/@href”,因为SgmlLinkExtractor会自动搜索链接。在

但控制台似乎什么都不起作用。在

有什么想法吗?在

提前谢谢

编辑:

用这个代码工作

^{pr2}$

Tags: 代码searchindexparse规则itemcatspider
1条回答
网友
1楼 · 发布于 2024-09-29 05:16:52

SgmlLinkExtractorallow参数是一个(一系列)正则表达式。所以“?”、“*”和“.”被视为特殊字符。在

您可以使用allow=(re.escape("index.php?pg=search&from=10&q=*:*&nr=10"))(在脚本开头的某个地方加上import re

编辑:事实上,上面的规则行不通。但是,由于您已经有了要提取链接的限制区域,所以可以使用allow=('index.php')

相关问题 更多 >