Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何进一步抓取网站?_Excel_Web Scraping - Fatal编程技术网

Excel 如何进一步抓取网站?

Excel 如何进一步抓取网站?,excel,web-scraping,Excel,Web Scraping,下面是我用来获取下面提到的特定变量的代码 Option Explicit Public Sub GetInfo() Dim s As String, ids(), i As Long ids = Array(500325, 500510) With CreateObject("MSXML2.XMLHTTP") For i = LBound(ids) To UBound(ids) .Open "GET", "https://api.bseindia.

下面是我用来获取下面提到的特定变量的代码

Option Explicit
Public Sub GetInfo()
    Dim s As String, ids(), i As Long
ids = Array(500325, 500510)
With CreateObject("MSXML2.XMLHTTP")
        For i = LBound(ids) To UBound(ids)
            .Open "GET", "https://api.bseindia.com/BseIndiaAPI/api/ComHeader/w?quotetype=EQ&scripcode=" & ids(i) & "&seriesid=", False
            .send
            s = .responseText
            ActiveSheet.Cells(i + 1, 1) = Split(Split(s, """ROE"":""")(1), Chr$(34))(0)
            ActiveSheet.Cells(i + 1, 2) = Split(Split(s, """PE"":""")(1), Chr$(34))(0)
            ActiveSheet.Cells(i + 1, 3) = Split(Split(s, """PB"":""")(1), Chr$(34))(0)
        Next
    End With
End Sub
但是我不能进一步做它,特别是在结果和持股模式框中提到的,因为我之前认为代码将与该门户上提到的所有变量一起工作。它与api或其他东西有关吗?因为我对api不太了解,所以建议您在这方面做些什么

链接供您随时参考:


您的阵列错误。声明动态数组,然后分配给它

Option Explicit

Public Sub GetInfo()
    Dim s As String, ids(), i As Long
    ids = Array(500325, 500510)
    With CreateObject("MSXML2.XMLHTTP")
        For i = LBound(ids) To UBound(ids)
            .Open "GET", "https://api.bseindia.com/BseIndiaAPI/api/ComHeader/w?quotetype=EQ&scripcode=" & ids(i) & "&seriesid=", False
            .send
            s = .responseText
            ActiveSheet.Cells(i + 1, 1) = Split(Split(s, """ROE"":""")(1), Chr$(34))(0)
            ActiveSheet.Cells(i + 1, 2) = Split(Split(s, """PE"":""")(1), Chr$(34))(0)
            ActiveSheet.Cells(i + 1, 3) = Split(Split(s, """PB"":""")(1), Chr$(34))(0)
        Next
    End With
End Sub

你的数组错了。声明动态数组,然后分配给它

Option Explicit

Public Sub GetInfo()
    Dim s As String, ids(), i As Long
    ids = Array(500325, 500510)
    With CreateObject("MSXML2.XMLHTTP")
        For i = LBound(ids) To UBound(ids)
            .Open "GET", "https://api.bseindia.com/BseIndiaAPI/api/ComHeader/w?quotetype=EQ&scripcode=" & ids(i) & "&seriesid=", False
            .send
            s = .responseText
            ActiveSheet.Cells(i + 1, 1) = Split(Split(s, """ROE"":""")(1), Chr$(34))(0)
            ActiveSheet.Cells(i + 1, 2) = Split(Split(s, """PE"":""")(1), Chr$(34))(0)
            ActiveSheet.Cells(i + 1, 3) = Split(Split(s, """PB"":""")(1), Chr$(34))(0)
        Next
    End With
End Sub

QHarr~我只是进一步添加了一些东西,您已经在简单的代码(几行)中添加了这些东西。我认为整个网页必须有一些共同的元素,它的网页抓取排序。作为一个门外汉,你可以理解我的思想过程,而我在这个问题上。我仍然在调查我还能做些什么,但没有运气,因为我觉得一切都很模糊。老实说,动态数组在我看来似乎有些牵强,因为我对这方面的技术不太感兴趣。无论如何,谢谢你的指导!您好,您更改了我的现有线路,即阵列。动态数组是什么意思?在这里,您最初不需要显式地调整数组的大小。在这里阅读有关数组和动态数组的内容:作为技术术语,我并不是第一手得到它的。既然你解释了,我明白了,不用担心。我确实认为有些事情是理所当然的,但我不应该。QHarr~我只是进一步添加了一些东西,您已经在简单代码(几行)中添加了这些东西。我认为整个网页必须有一些共同的元素,它的网页抓取排序。作为一个门外汉,你可以理解我的思想过程,而我在这个问题上。我仍然在调查我还能做些什么,但没有运气,因为我觉得一切都很模糊。老实说,动态数组在我看来似乎有些牵强,因为我对这方面的技术不太感兴趣。无论如何,谢谢你的指导!您好,您更改了我的现有线路,即阵列。动态数组是什么意思?在这里,您最初不需要显式地调整数组的大小。在这里阅读有关数组和动态数组的内容:作为技术术语,我并不是第一手得到它的。既然你解释了,我明白了,不用担心。我确实认为有些事情是理所当然的,但我不应该这样做。