0

たとえば、最初/上位5つの日付のPDFファイルを以下のリンクからダウンロードしてデスクトップに保存する必要があります。始め方がわかりませんが、Googleで明確なものを見つけることができませんでした。

あなたは私を助けることができると思いますか?

http://cetatenie.just.ro/ordine/articol-11/

4

1 に答える 1

2

Internet Explorerを使用し、SHDocVw.InternetExplorerオブジェクト(VBA参照'Microsoft Internet Controls'、ieframe.dll)を使用して自動化します。

(a)を使用して新しいInternet Explorerウィンドウを作成するSet x = New SHDocVw.InternetExplorerか、(b)を使用して既存のInternet Explorerウィンドウを取得することができますSet owins = CreateObject("Shell.Application").Windowsowinsは配列であり、場所が見つかるまでループしますMid(TypeName(owins(i).Document), 1, 12) = "HTMLDocument")。

Internet Explorerを入手しieたら、電話ie.Navigate(url)をかけてWebサイトにアクセスできます。

Internet Explorerのナビゲートが完了するのを待ってから問い合わせるには、次のように実行します。

Do While mascot_win.Busy
    Application.Wait DateAdd("s", 1, Now)
    DoEvents
Loop

そのページの最初の5つのPDFのURLを取得するには、ページのHTMLを調べる必要があります。HTMLの形式に応じて、2つの方法があります。HTMLが適切に記述されている場合は、を使用してドキュメントオブジェクトモデル(XMLなどのタグ)をナビゲートできますie.Document.all()。ただし、HTMLが整形式でない場合は、からHTMLを読み取ることに頼らなければならない場合がありますie.Document.all(0).innerHTML

あなたが与えたリンクのルックスによって、あなたは次のようなものを探しているでしょう:

<li>Data de <strong>22.03.2013</strong>, numarul: <a href="/wp-content/uploads/Ordin-149P-din-22.03.2013.pdf">149P</a></li>

各PDFURLを分離したら(<a>DOMモデルのタグの属性を使用するかMid()、HTMLで多くの呼び出しを使用して)、次を使用してダウンロードできます。

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

Dim ss As String
Dim ts As String
ss = "http://blah/blah/blah.pdf"
ts = "c:\meh\blah.pdf"
URLDownloadToFile 0, ss, ts, 0, 0
于 2013-03-26T06:04:09.760 に答える