使用 Excel 从在线社区抓取 XPath 数据

使用 Excel 从在线社区抓取 XPath 数据

我最近读了这篇文章文章如何使用 Excel 抓取 Inbound.org 社区成员资料。您还可以观看视频如果您喜欢这样的话,请点击此处。

自本教程发布以来,Inbound 网站结构发生了一些变化,正如您在视频第 11 分钟看到的那样,如果您尝试复制社交媒体图标的 XPath,它会略有不同,因此我无法提取该信息。

以下是我现在得到的结果:

/html/body/div[3]/div/div/div[1]/div/div[2]/a[1]/i

这是我在 Excel 中编写语法的方式:

=XPathOnUrl(A2,"//a[@class='twitter']","href")

然后像这样:

=XPathOnUrl(A2,"//a[contains(@class,twitter)]/@href")

尽管我尝试了很多不同的方法,但没有一个能显示该会员社交媒体资料的链接。

我甚至尝试以多种方式更改 xpath 以从页面获取不同的数据,但其中没有一个是社交媒体信息:

=XPathOnUrl(A2,"//*[contains(@class,member-banner-tagline)]/div[2]/div/div/div[1]/div/div[1]")

=XPathOnUrl(A2,"//*[contains(@class,member-banner-tagline)]/div[2]/div/div/div[1]/div/h1")

说实话,我不知道该再尝试什么了,有些地方不对劲,我搞不清楚。有没有人在这方面有足够经验,或者能指出我的语法问题?

多谢

答案1

根据 Firefox/Firebug,用户 Twitter URL 的唯一 XPath 是:

/html/body/div[2]/div/div/div[1]/div/div[2]/a[1]

这与您的第一次尝试略有不同。注意:我修改了我的第一次尝试,您不希望/i在末尾使用,否则您会得到内部元素,而不是<a>带有 url 的元素。

但是,您的第二次尝试肯定会找到包含 URL 的正确 HTML 元素,并且它更加健壮。

尽管您的第三次尝试可以在 Google Docs ImportXML 中使用,但它无法与 XPathOnUrl 一起使用,因为它不支持属性语法。

相关内容