【问题标题】:Excel 2010 Download CSV with dynamic name from secure websiteExcel 2010 从安全网站下载具有动态名称的 CSV
【发布时间】:2015-02-23 10:04:10
【问题描述】:

我想登录一个站点,导航到一个页面,然后下载.CSV 文件,由于它是“自定义”的,该文件将始终以动态字符串结尾。

我尝试通过录制宏来访问该网站。但是,由于数据不在表格中,宏记录器无法获取 .csv 文件的实际地址。

显示文本始终为:

Results [link]Click to Download[/link]  

html 值总是:

<td class="smallText"><b>Results</b> <a href="vendor_report.php?report=custom [insert extremely long string here] ><u>Click to Download</u></a></td>   

在不使用表格的情况下,有没有办法获取此 .csv 文件并将其保存到我的电脑?
我知道&lt;td&gt; 的使用表示它是表格的一部分,但它绝对没有拾取它,我已经使用宏记录器浏览了该站点,它没有从页面中拾取内部内容。
https://[domain].php?vf=vieworders

我也想过导航到网站页面,突出显示文本,复制并粘贴到我书中的备用页,然后使用一些代码 L42 以前写过 here(下)但我什至不能让复制和粘贴正常工作。

For Each hlink In ThisWorkbook.Sheets("NameOfYourSheet").Hyperlinks
    Set wb = Workbooks.Open(hlink.Address)
    wb.SaveAs saveloc & hlink.Range.Offset(0,1).Value & ".xlsx"
    wb.Close True
    Set wb = Nothing
Next

请指教。提前谢谢你。

更新
我找到了它隐藏在哪个表中,Table 2。然而,它位于许多其他文本之中。
当我将表格内容复制并粘贴到工作表时,我无法将链接显示为 HTML 值,因此我可以将其与我的第二个选项(从电子表格打开链接)一起使用。
这可能是我使用的原始 Get Data 代码的问题。

这就是它的外观。两边的单元格都被填满了,B20 中的一大块(空白)文本也被填满了

Regex 在这里有用吗??

【问题讨论】:

    标签: php excel vba csv web-scraping


    【解决方案1】:

    您可以尝试将 XMLHTTP 对象与流一起使用:

    Sub SO()
    
    Dim objStream As Object, strURL As String
    
    Set objStream = CreateObject("ADODB.Stream")
    strURL = "vendor_report.php?report=custom [insert extremely long string here]"
    
    With CreateObject("Microsoft.XMLHTTP")
        .Open "GET", strURL, False
        .Send
        If .Status = 200 Then
            objStream.Open
            objStream.Type = 1
            objStream.Write .ResponseBody
            objStream.SaveToFile "C:\users\bloggsj\output.csv", 2
            objStream.Close
        End If
    End With
    
    Set objStream = Nothing
    
    End Sub
    

    根据需要更改保存路径。

    【讨论】:

    • 谢谢。我已经能够使用bit.ly/1ETIAbl 导航到该页面,然后运行您的代码。您的代码为我提供了一个新的 .csv(正确),但是它将页面数据拉入其中,它不会将现有的 .csv 拉下。过去“自定义”的字符串细节确实发生了变化,这可能是问题吗?非常感谢:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2016-08-30
    • 1970-01-01
    • 2017-07-14
    • 2012-08-18
    • 1970-01-01
    相关资源
    最近更新 更多