网络抓取 - StockCharts - getElementsByTagName ("a")
Web Scraping - StockCharts - getElementsByTagName ("a")
我正在尝试获取此网站中列名称的内部文本和 href 属性:
https://stockcharts.com/freecharts/sectorsummary.html?&G=SECTOR_DJUSNS&O=1
但我得到了除 table.
内的所有超链接
有人可以看看这段代码并告诉我哪里出了问题吗?
Sub Scraping_StockCharts()
Dim XMLPage As New MSXML2.XMLHTTP60
Dim HTMLDoc As New MSHTML.HTMLDocument
Dim HTMLIm As MSHTML.IHTMLElement
Dim HTMLIms As MSHTML.IHTMLElementCollection
Dim URL As String
URL = "https://stockcharts.com/freecharts/sectorsummary.html?&G=SECTOR_DJUSNS&O=1"
XMLPage.Open "Get", URL, False
XMLPage.setRequestHeader "Content-Type", "text/xml"
XMLPage.send
HTMLDoc.body.innerHTML = XMLPage.responseText
Row = 1
Set HTMLIms = HTMLDoc.getElementsByTagName("a")
For Each HTMLIm In HTMLIms
Sheets("Results").Cells(Row, 2).Value = HTMLIm.innerText
Sheets("Results").Cells(Row, 3).Value = HTMLIm.getAttribute("href")
Row = Row + 1
Next HTMLIm
End Sub
不允许通过 xmlhttp 进行抓取。不确定浏览器的自动化。您需要仔细阅读服务条款。通过浏览器自动化,您可以只使用我怀疑的 url。
从知识的角度来看,可以从 https://c.stockcharts.com/j-sum/sum?cmd=perf&group=SECTOR_DJUSNS
获得数据,这将 return JSON。从那个 json 中,您可以通过访问字典列表 returned 中每个字典的符号值来重建 url。将 sym
值连接到 https://stockcharts.com/h-sc/ui?s=
的基本字符串的末尾
例如列表中的第一个字典
https://stockcharts.com/h-sc/ui?s= + sym
给予
https://stockcharts.com/h-sc/ui?s=TKAT
基本上,服务器需要一个查询字符串和 returns json。该页面使用它来更新内容。刷新页面时可以在浏览器的网络选项卡中查看。
您最好寻找提供类似数据的免费 API。
我正在尝试获取此网站中列名称的内部文本和 href 属性:
https://stockcharts.com/freecharts/sectorsummary.html?&G=SECTOR_DJUSNS&O=1
但我得到了除 table.
内的所有超链接有人可以看看这段代码并告诉我哪里出了问题吗?
Sub Scraping_StockCharts()
Dim XMLPage As New MSXML2.XMLHTTP60
Dim HTMLDoc As New MSHTML.HTMLDocument
Dim HTMLIm As MSHTML.IHTMLElement
Dim HTMLIms As MSHTML.IHTMLElementCollection
Dim URL As String
URL = "https://stockcharts.com/freecharts/sectorsummary.html?&G=SECTOR_DJUSNS&O=1"
XMLPage.Open "Get", URL, False
XMLPage.setRequestHeader "Content-Type", "text/xml"
XMLPage.send
HTMLDoc.body.innerHTML = XMLPage.responseText
Row = 1
Set HTMLIms = HTMLDoc.getElementsByTagName("a")
For Each HTMLIm In HTMLIms
Sheets("Results").Cells(Row, 2).Value = HTMLIm.innerText
Sheets("Results").Cells(Row, 3).Value = HTMLIm.getAttribute("href")
Row = Row + 1
Next HTMLIm
End Sub
不允许通过 xmlhttp 进行抓取。不确定浏览器的自动化。您需要仔细阅读服务条款。通过浏览器自动化,您可以只使用我怀疑的 url。
从知识的角度来看,可以从 https://c.stockcharts.com/j-sum/sum?cmd=perf&group=SECTOR_DJUSNS
获得数据,这将 return JSON。从那个 json 中,您可以通过访问字典列表 returned 中每个字典的符号值来重建 url。将 sym
值连接到 https://stockcharts.com/h-sc/ui?s=
例如列表中的第一个字典
https://stockcharts.com/h-sc/ui?s= + sym
给予
https://stockcharts.com/h-sc/ui?s=TKAT
基本上,服务器需要一个查询字符串和 returns json。该页面使用它来更新内容。刷新页面时可以在浏览器的网络选项卡中查看。
您最好寻找提供类似数据的免费 API。