|
とある会員制のサイトの中で、PDFファイルを大量にダウンロード
したい、と考えています。
手順として考えているのが
1 まず手動でログイン
2 ダウンロードすべきURL(*******.pdf)というリンク先を列挙
3 実際にダウンロード
この2まではできていて、後は3のみなのですが、試してだめだったのは
下記のURLDownloadToFileを使うやり方→既に入力しているIDなどが
入力されていない状態と認識されています。(これは下記プログラムで
生成されたPDFの中身をtextにして読んで分かりました)
ちょっと違うのですが可能なのは、マクロでIEを新規に開いて、そこにリンク先を
入れてやって閲覧する事。でもこれはファイルの保存ではありません。
あと分かっているのは、手動でそのURLをIEに入れてやると、
ログインするために開いたIE→正しく表示できる
新規に開いたIE→そのURLを入れても、ログインが認識されていない
のかアクセス不可
ということです。ダウンロードをするのに良い方法を教えて頂ければ
と思います。宜しく御願いします!
----------------------------
'URLDownloadToFile API from URLMON.
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
-----------------------------
Sub get_url_file(strURL As String, place As String)
Dim strFNAME As String 'ダウンロード先(パス+ファイル名)
Dim strWORK As String '後ろから/を探し、ファイル名を取り出す
Dim returnValue
Dim n As Integer
'ファイル名を取り出す
For n = Len(strURL) To 1 Step -1 '後ろから/を探す
If Mid(strURL, n, 1) = "/" Then
Exit For '/が見つかったらループを抜ける
End If
Next n
strWORK = Mid(strURL, n + 1) '/の次からファイル名なのでn+1から
'ファイル名を cells(z,2~4)とする
z = Cells(1, 2)
strFNAME = place & "\" & Cells(z, 2) & Cells(z, 3) & Cells(z, 4) & ".pdf"
'URLDownloadToFile API をコールする
returnValue = URLDownloadToFile(0, strURL, strFNAME, 0, 0)
End Sub
|
|