获取网站元数据(Excel VBA/Python)
我想用Excel的VBA来获取下面网站的股票代码信息:https://www.screener.in/company/KRISHANA/
我查看了网络选项卡,发现代码在“同行”这个节点下:https://www.screener.in/api/company/13611040/peers/
下面是我在Excel VBA中写的代码,网页上没有关于这个代码的信息。
注意:我不想重复这个话题,我到处搜索过了。如果在VBA中不行,那我们能不能用Python来实现呢?
URLS = "https://www.screener.in/company/KRISHANA/"
Set xhr = New MSXML2.ServerXMLHTTP60
With xhr
.Open "GET", URLS, False
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36"
.send
If .readyState = 4 And .Status = 200 Then
Set Doc = New MSHTML.HTMLDocument
Doc.body.innerHTML = .responseText
End If
End With
DoEvents
2 个回答
0
你可以直接使用网页导入功能:
- 先点击“数据”选项,然后选择“从网页获取”
- 把这个链接粘贴进去:“https://www.screener.in/api/company/13611040/peers/”
- 点击“Table0”这个选项
- 然后点击“加载”按钮
1
如果网址总是一样的,而你只需要更改仓库的ID,你可以用下面的方法来获取这个ID。这种方法没有处理任何错误,只是展示了基本的操作机制。
Sub getDataWarehouseId()
Const url As String = "https://www.screener.in/company/KRISHANA/"
Dim doc As Object
Set doc = CreateObject("htmlFile")
With CreateObject("MSXML2.XMLHTTP.6.0")
.Open "GET", url, False
.send
If .Status = 200 Then
doc.body.innerHTML = .responseText
MsgBox doc.getElementByID("company-info").getAttribute("data-warehouse-id")
Else
MsgBox "Page not loaded. HTTP status " & .Status
End If
End With
End Sub