如何使用Excel VBA从受脚本保护的站点获取数据?

时间:2013-12-12 16:03:51

标签: php excel vba excel-vba

我无法从包含库存数据的站点导入数据表。我在MS Excel 2007中做过;数据>获取外部数据>来自网络>像往常一样进口,但网站没有退货。当我试图从网站上抓取数据表时,它显示了一个小窗口按摩(截图),我认为该过程重定向到另一个链接;但最终的结果是零。我认为该页面受脚本保护。

重定向按摩:“开场:'http://www.dsebd.org/latest_share_price_all.php

请告诉我如何在Excel工作簿中从此类网站下载(导入)数据。

网站原始链接:http://www.dsebd.org/latest_share_price_scroll_l.php [我想从此处下载数据]

先前感谢您的支持。

3 个答案:

答案 0 :(得分:0)

Excel没有问题。 网站正在使用iframe - >并拒绝访问请求... 按F12查找站点代码。在

之前它曾经为你工作过吗?

答案 1 :(得分:0)

以下代码会将每个交易代码,LTP,更改和%更改放在活动工作表的单独行中。

'打开IE浏览器,导航到感兴趣的网站并循环直到完全加载

Set IE = CreateObject("InternetExplorer.Application")

With IE
    .Visible = True
    .navigate "http://www.dsebd.org/latest_share_price_scroll_l.php"
    .Top = 50
    .Left = 530
    .Height = 400
    .Width = 400

Do Until Not IE.Busy And IE.readyState = 4
    DoEvents
Loop

End With

如果您使用F12查看源代码,您会注意到每个股票及其相关数据都被标记名括起来(在本例中为“a”)。用它来收集每只股票的数据,并将所有股票的数据放在“结果”中。单步执行“结果”并将每个库存放在单独的行中。使用替换功能删除换行符,使数据显示在1行。

Set Results = IE.document.getElementsByTagname("table")(0).getElementsByTagname("a")
x = Results.Length

For y = 0 To x - 1
    gg = Results(y).innertext
    gg = Replace(gg, Chr(10), "", 1, -1, vbTextCompare)
    ActiveCell = gg
    ActiveCell.Offset(1,0).Select
Next

答案 2 :(得分:0)

按A1单元格,然后按数据 - > http://www.dsebd.org/latest_share_price_scroll_l.php->点击第一个箭头 - > import-> ok ..... eureka 在单元格E1上你会看到你想要的东西