xpath 无法从 table 中提取数据
xpath can't extract data from table
我编写了以下 xpath 以从 table 中提取名称和价格。
/html/body/div[2]/div[7]/div[3]/table[1]/tbody/tr
但无法提取
该页面的源 HTML 中没有 tbody
元素(打开源文档并搜索 "tbody" 自己试试)。
不幸的是,浏览器(包括浏览器插件,n.b。)倾向于将 tbody
元素添加到 DOM 表示中,即使它们实际上并不存在。
我不知道你想在该页面上找到什么(你解释得不够清楚),但如果你正在搜索
//table/tbody/tr
这并没有 return 任何东西,你应该尝试的第一件事是
//table//tr
看看它是否有所作为。如果没有,接下来要注意的是 namespaces。作为您的输入 (allegedly) 的文档是 XHTML,它要求元素位于命名空间中:
<html lang="fa" xml:lang="fa" xmlns="http://www.w3.org/1999/xhtml">
根据您使用的 XPath 引擎(同样,我们不知道),您需要干净地注册带有前缀和前缀元素名称的命名空间。
我编写了以下 xpath 以从 table 中提取名称和价格。
/html/body/div[2]/div[7]/div[3]/table[1]/tbody/tr
但无法提取
该页面的源 HTML 中没有 tbody
元素(打开源文档并搜索 "tbody" 自己试试)。
不幸的是,浏览器(包括浏览器插件,n.b。)倾向于将 tbody
元素添加到 DOM 表示中,即使它们实际上并不存在。
我不知道你想在该页面上找到什么(你解释得不够清楚),但如果你正在搜索
//table/tbody/tr
这并没有 return 任何东西,你应该尝试的第一件事是
//table//tr
看看它是否有所作为。如果没有,接下来要注意的是 namespaces。作为您的输入 (allegedly) 的文档是 XHTML,它要求元素位于命名空间中:
<html lang="fa" xml:lang="fa" xmlns="http://www.w3.org/1999/xhtml">
根据您使用的 XPath 引擎(同样,我们不知道),您需要干净地注册带有前缀和前缀元素名称的命名空间。