如何强制HtmlAgilityPack使用Chrome对XPath中某些内容的解释?
例如,这两行代码指向网页上完全相同的东西,但xpath完全不同。
for Chrome:
/html/body[@class=' hasGoogleVoiceExt']/div[@class='fjfe-bodywrapper']/div[@id='fjfe-real-body']/div[@id='fjfe-click-wrapper']/div[@id='appbar']/div[@class='elastic']/div[@class='appbar-center']/div[@class='appbar-snippet-primary']/span
for FireFox:
//*[@id='appbar']/div/div[2]/div[1]/span
我想使用Chrome但我在两个查询中都收到null。
答案 0 :(得分:1)
Html Agility Pack不依赖于任何浏览器。它使用.NET XPATH实现。除非你完全重写,否则你无法改变它。
您在浏览器中看到的HTML可能与您为网址下载的HTML非常不同,因为第一个可能已被动态代码(javascript,DHTML)修改。
如果您有现有的HTML或网址,我们可以为您提供更多帮助。
答案 1 :(得分:0)
以下是我使用Chrome中复制的XPATH发现的内容: - 我必须删除所有tbody元素并加倍向前斜杠,然后下面的代码将返回正确的元素。
doc.DocumentNode.SelectSingleNode( “// // HTML体//中心//表[3] // // TR TD // //表TR // // TD表// // TR TD //表[3] // TR [ 3] // TD [3] // //表TR // // TD表“);