Scrapy LinkExtractor与svg元素作为下一步按钮

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (69)

我正在使用CrawlSpider,它递归地跟随使用链接提取调用下一页的链接,如:

rules = (Rule(LinkExtractor(
               allow=(),\
               restrict_xpaths=('//a[contains(.,"anextpage")]')),\
               callback='parse_method',\
               follow=True),
        )

我已经应用这个策略来递归抓取不同的网站,并且就html标签中的文本而言<a href="somelink">sometext</a>,一切正常。

我现在正试图刮一个网站,它有<svg class="nextpageclass"><path d="somenumbers"></path></svg>一个“下一个”按钮而不是简单的文本,我的LinkExtractor规则似乎不再适用,蜘蛛在第一页后停止。

我试图寻找svg元素,但似乎没有触发提取:

restrict_xpaths=('//a[contains(.,name()=svg) and contains(@class,"nextpageclass")]'))

有什么我想念的吗?

提问于
用户回答回答于

SVG元素具有XML命名空间。

要在XPath表达式中使用类似的SVG元素,您需要首先从选择器中删除名称空间

selector.remove_namespaces()

扫码关注云+社区

领取腾讯云代金券