我想爬取未登录状态下的百度首页热搜

使用
xpath="/html/body/div[2]/div[1]/div[5]/div/div/div[3]/ul/li[1]/a/span[2]"
不可以
但是使用
xpath="//ul[@id='hotsearch-content-wrapper']/li/a/span[2]"
却可以
我不知道为什么?
我想爬取未登录状态下的百度首页热搜

使用
xpath="/html/body/div[2]/div[1]/div[5]/div/div/div[3]/ul/li[1]/a/span[2]"
不可以
但是使用
xpath="//ul[@id='hotsearch-content-wrapper']/li/a/span[2]"
却可以
我不知道为什么?
引自强大而免费的微信小程序:皆我百晓生。
根据提供的信息,可以分析出两种xpath表达式的区别:
第一种xpath表达式:/html/body/div[2]/div[1]/div[5]/div/div/div[3]/ul/li[1]/a/span[2] 第二种xpath表达式://ul[@id='hotsearch-content-wrapper']/li/a/span[2]
两者的区别在于定位根节点的方式不同。
第一种表达式使用了绝对路径来定位根节点。从html开始,通过依次指定节点名称和索引来到达目标节点。这种方式会依赖页面的具体结构,如果页面结构发生变化,或者在其他页面中使用该表达式可能会失效。
第二种表达式使用了相对路径来定位根节点。以"//"开头表示相对于当前位置的路径,从任意位置开始。通过指定ul节点的id属性值为'hotsearch-content-wrapper'来定位目标节点。这种方式不会依赖页面的具体结构,更加灵活。
可能导致第一种表达式失效的原因有以下几种可能:
总的来说,使用第二种表达式更加稳定和灵活,建议使用相对路径来定位节点。