我最近读了这篇文章文章如何使用 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 一起使用,因为它不支持属性语法。