2016-11-03 30 views
1

WebサイトからHTMLドキュメント構造を取得したいので、そこから情報を抽出できます。私はGETリクエストを使用しますが、416のステータスを返します。他のウェブサイトでは、そのようなプレーンなGET要求で十分な応答が得られました。VBA - MSXML2.ServerXMLHTTP GET要求 - サーバーの状態416

Dim oXMLHTTP As New MSXML2.ServerXMLHTTP 
Dim htmlObj As New HTMLDocument 

With oXMLHTTP 
    .Open "GET", "http://www.manta.com/ic/mtqyfk0/ca/riverbend-holdings-inc", False 
    .send 

    If .ReadyState = 4 And .Status = 200 Then 
     Set htmlObj = CreateObject("htmlFile") 
     htmlObj.body.innerHTML = .responseText 
     'do things 
    End If 

End With 
+1

416エラーを修正し、ページをスクラップすることは非常に異なることです。タイトルとタグに意味があるように、おそらく新しい質問を提出するべきです。 – ThunderFrame

答えて

1

あなただけServerXMLHTTP

Dim oXMLHTTP As New MSXML2.XMLHTTP60 

戻り、私にとって200の代わりにXMLHTTPを使用することができるはずです。

+0

MSXML2.XMLHTTPとMSXML2.XMLHTTP60にはいくつかの大きな違いがありますか?私はそれらを他のウェブサイト上でパフォーマンスワイズにテストし、同じ速度を持っていました。 ServerXMLHTTPは2倍以上速かったですが、残念ながらこの場合は使用できません。 –

+0

IIRCこれは、参照しているライブラリのバージョンによって異なります。私はV.6を参照していたので、 'XMLHTTP60'クラスが利用可能でした。あなたは 'ServerXMLHTTP'を使うことができますが、サイトが要求するように見えるヘッダを提供する必要があり、' XMLHTTP' *は*送信します。 – ThunderFrame

+0

'.setRequestHeader" User-Agent "、" Mozilla/5.0(Windows NT 6.1; WOW64; rv:49.0)Gecko/20100101 Firefox/49.0 "を使って' ServerXMLHTTP'を動作させることができました。 –

関連する問題