请稍等 ...
×

采纳答案成功!

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

在遍历元素时xpath和css选择器为什么结果不一样

代码如下:

post_nodes = response.xpath('//div[@id="news_list"]/div[@class="news_block"]')
# post_nodes = response.css('#news_list .news_block')

for post_node in post_nodes:
   # print(post_node)
   image_url = post_node.xpath('//div[@class="entry_summary"]/a/img/@src').extract()
   image_url = post_node.css('.entry_summary a img::attr(src)').extract()

用path结果如下:
图片描述
用css结果如下:
图片描述
问题:
从结果分析是css正确的应该是每次遍历只能获取一个值
但是为什么用xpath却获取了所有的值,这明显是不对的

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

1回答

bobby 2020-05-28 13:03:13

xpath尝试一下将双斜线改为单斜线 或者去掉双斜线试试

0 回复 有任何疑惑可以回复我~
  • 提问者 慕雪9382207 #1
    不行,但是如果改成下面的就可以,也不知道为什么
     post_node = Selector(text=post_node)
                image_url = post_node.xpath('//div[@class="entry_summary"]/a/img/@src').extract_first("")
    回复 有任何疑惑可以回复我~ 2020-05-28 14:07:08
  • bobby 回复 提问者 慕雪9382207 #2
    这样会不会重复?
    回复 有任何疑惑可以回复我~ 2020-05-29 12:16:27
  • 陳根生 回复 提问者 慕雪9382207 #3
    xpath的for循环在//前面要加上.点,不然会重复的
    回复 有任何疑惑可以回复我~ 2020-07-19 22:46:45
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号