Excel 用VBA进行网页抓取-差不多了
在研究了这里的许多帖子之后,我终于拼凑出了有效的代码(见下文)!当索引基本上是页面上唯一的数据点()时,它从yahoo finance中提取索引值 但是,当我希望从包含多个索引值()的网站中获得相同的索引时,web代码似乎无法正确引用元素并将其放入编码中。谁能帮我完成这最后一关吗?非常感谢。Excel 用VBA进行网页抓取-差不多了,excel,vba,web-scraping,Excel,Vba,Web Scraping,在研究了这里的许多帖子之后,我终于拼凑出了有效的代码(见下文)!当索引基本上是页面上唯一的数据点()时,它从yahoo finance中提取索引值 但是,当我希望从包含多个索引值()的网站中获得相同的索引时,web代码似乎无法正确引用元素并将其放入编码中。谁能帮我完成这最后一关吗?非常感谢。 End Sub港交所的每个股票代码都有“listitem”类别。因此,要获取每个ticker,请使用getElementsByCassName(“listitem”)搜索该类。循环遍历每个元素,元素的第一
End Sub港交所的每个股票代码都有“listitem”类别。因此,要获取每个ticker,请使用getElementsByCassName(“listitem”)搜索该类。循环遍历每个元素,元素的第一个子元素(class=“col\u name”)将是股票代码名,第二个子元素(class=“col\u last”)将是价格
Sub HSI_Scrape()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = False
IE.Navigate "https://www.hkex.com.hk/?sc_lang=en"
Do While IE.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
Dim listitems As Object 'list of tickers
Dim listitem As Object 'each ticker
Set listitems = IE.document.getElementsByClassName("listitem")
Dim row As Integer
row = 1
For Each listitem In listitems
Worksheets("Tickers").Range("A" & row) = listitem.Children(0).innerText 'Ticker Name
Worksheets("Tickers").Range("B" & row) = listitem.Children(1).innerText 'Ticker Price
row = row + 1
Next listitem
End Sub
你可能会发现有用的(我真的很喜欢它们)是——它们涵盖了所有的基础知识,而且讲师是以前的老师,这一经验真的说明了这一点。然后花一些时间学习基本的html课程。一个是完美的入门级,尤其是html一开始看起来非常陌生。如果你感兴趣的话,同一个人会做一个CSS和JavaScript速成课程(他们都假设没有什么经验)供以后阅读!因此,我不能直接在一行中引用该项,但需要创建这个循环来遍历每个“类”。好极了谢谢你,奥梅拉!!!
Sub HSI_Scrape()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = False
IE.Navigate "https://www.hkex.com.hk/?sc_lang=en"
Do While IE.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
Dim listitems As Object 'list of tickers
Dim listitem As Object 'each ticker
Set listitems = IE.document.getElementsByClassName("listitem")
Dim row As Integer
row = 1
For Each listitem In listitems
Worksheets("Tickers").Range("A" & row) = listitem.Children(0).innerText 'Ticker Name
Worksheets("Tickers").Range("B" & row) = listitem.Children(1).innerText 'Ticker Price
row = row + 1
Next listitem
End Sub