我是这个领域的新手。
我的问题是,当我访问时,我得到的 URL 在网络浏览器中提供了不错的网页,但是当我尝试使用 winhttp[vba] 或 Internet Explorer 方法提取信息时,它失败了。
同样,当我尝试从该网站下载 PDF 时,网站中的链接是 https://search.rpxcorp.com/litigation_documents/11809340 但是当我使用 ADODB.Stream 从 URL 下载 pdf 时,它失败了。
当我在浏览器中访问 PDF 网址时,它会定向到另一个链接: https://rpx-docs.s3.amazonaws.com/lits/043/90811/txedce-165478.pdf?Signature=Iw62RBSiCiYAr7gNyJiANyUNjDo%3D&Expires=1452925167&AWSAccessKeyId=AKIAI2UWKALIEYBVOKDA
我的问题是,如何使用这种类型的网站来使用 html。
编辑 我认为由于它包含JavaScript,如果不使用java脚本就不可能解决我的问题。
最佳答案
使用API直接从URL下载
Option Explicit
#If VBA7 And Win64 Then
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" ( _
ByVal pCaller As LongPtr, _
ByVal szURL As String, _
ByVal szFileName As String, _
ByVal dwReserved As LongPtr, _
ByVal lpfnCB As LongPtr _
) As Long
Private Declare PtrSafe Function DeleteUrlCacheEntry Lib "Wininet.dll" _
Alias "DeleteUrlCacheEntryA" ( _
ByVal lpszUrlName As String _
) As Long
#Else
Private Declare Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" ( _
ByVal pCaller As Long, _
ByVal szURL As String, _
ByVal szFileName As String, _
ByVal dwReserved As Long, _
ByVal lpfnCB As Long _
) As Long
Private Declare Function DeleteUrlCacheEntry Lib "Wininet.dll" _
Alias "DeleteUrlCacheEntryA" ( _
ByVal lpszUrlName As String _
) As Long
#End If
Public Const BINDF_GETNEWESTVERSION As Long = &H10
Public Const folderName As String = "C:\Users\User\Desktop\litigationInfo.pdf" '<=Change as required
Public Sub downloadPDF()
Dim ret As Long
ret = URLDownloadToFile(0, "https://insight.rpxcorp.com/litigation_documents/11809340", folderName, BINDF_GETNEWESTVERSION, 0)
End Sub
关于javascript - 如何使用标记的 URL [VBA],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34823993/