请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师您好,我遍历SelectorList的时候如果使用xpath总会提取到当前页的第一条新闻,即使对SelectorList切片之后。这是怎么回事呢?

正在回答 回答被采纳积分+3

4回答

慕勒5311868 2022-01-25 11:32:10

原因是,加点代表取当前元素为根节点向下查找元素,而不加点是以整个页面为根元素向下查找的。因为你没有加点,所以总是从根节点找第一个,而不是你所需要的从编写好的selectorlist里找第一个

0 回复 有任何疑惑可以回复我~
慕勒5311868 2022-01-25 11:29:34

老哥,找到解决方法了,应该这样

image_url=post_node.xpath('.//div[@class="entry_summary"]/a/img/@src').extract_first("")
post_url=post_node.xpath('.//h2[@class="news_entry"]/a/@href').extract_first("")


0 回复 有任何疑惑可以回复我~
  • bobby #1
    是的, xpath的新版本如果从当前节点遍历需要在前面加点,补录的课程中提到过这点,其他的同学的提问中也回复过
    回复 有任何疑惑可以回复我~ 2022-01-25 16:45:22
慕勒5311868 2022-01-25 11:10:22

老哥,怎么解决的?代码看看

0 回复 有任何疑惑可以回复我~
bobby 2020-03-18 15:22:26

你可以尝试一下css选择器看看是否仍然有这个问题

0 回复 有任何疑惑可以回复我~
  • 提问者 UptownFk #1
    css是可以的,xpath不行
    回复 有任何疑惑可以回复我~ 2020-03-18 15:50:31
  • bobby 回复 提问者 UptownFk #2
    你把完整的spider代码贴一下我本地测试一下看看呢
    回复 有任何疑惑可以回复我~ 2020-03-20 12:27:02
  • 懵逼工程师 回复 提问者 UptownFk #3
    我擦,原来如此,坑死我了。
    回复 有任何疑惑可以回复我~ 2021-06-22 00:42:23
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信