我是编码的初学者。我现在正在学习如何通过Excel或VBA从Web获取信息。
我可以通过以下示例询问我的问题: 在以下链接(https://www.schooland.hk/ss/tsuen-wan)中, 当您单击我显示的红色圆圈中的那些单独的蓝色字词时,它将导致单个页面。 在所有这些单独的页面中,例如(https://www.schooland.hk/ss/twgss),他们也有这样的部分显示相同类型的信息,如电话号码等(如下图所示)。
我的工作是使用电子表格,例如excel,显示一个表格,列出红色圆圈中所有单独的字词信息,而不使用复制和粘贴。
我怎么能这样做?
答案 0 :(得分:0)
以下使用XHR来完成您的任务。
备注:强>
GetSchoolInfo
是主要的子。
它将初始请求发送给"https://www.schooland.hk/ss/tsuen-wan"
。它使用函数GetHTMLDoc
返回传入的网页网址的HTML文档。
您可以使用
的CSS选择器检索您在第一个红色圆圈区域中显示的各个学校的链接.school-table a
"." means className,因此.school-table
表示具有className school-table
的所有元素。
" a" means all a tags contained within那个。
此CSS查询返回的示例结果:
为每个链接返回的实际HTML如下所示:
<A title="Tsuen Wan Government Secondary School" href="about:twgss">??????</A>
我们可以利用以下事实:每个链接到页面的about:
之后的短字符串,即twggs
与"https://www.schooland.hk/ss/"
的一般基本字符串相结合,以给每个学校特定的URL即
"https://www.schooland.hk/ss/twggs"
。
函数GethRefSubString
获取此短字符串,该字符串与常规基本字符串BASEURL
一起使用。此学校特定链接已添加到schoolLinks
集合中。
schoolLinks
集合使用GetHTMLDoc
循环处理指向学校特定新HTML文档的链接。
每个学校页面上的联系信息(问题中第二个红色圆圈区域)位于HTMLDivElement
,其中包含className contact
。适当的索引是0,即集合中的第一个匹配的className(也是唯一的!)。
可以通过.innerText
的{{1}}属性访问所有必需的联系信息。
示例网页内容:
示例代码输出:
VBA代码:
HTMLDivElement
所需参考: