2016-05-09 11 views
1

私は間違った用語でこれを言っているかもしれませんので、私が間違っていれば私を修正してください。javascriptが実行された後domからhtmlを取得

私がしたいことは次のとおりです。ウェブサイトのコメントセクションを削り取ろうとしていますが、ページが完全に読み込まれた後にコメントがajaxコールによって読み込まれます。私は経由でのサイトからHTMLをこすりしようとすると:

res, err:= http.Get(url) 
if err != nil { 
    // handle error 
} 
defer res.Body.Close() 

しかし、それは明らかにAJAX呼び出しの前にHTMLを取得します。 ajaxコールの後にhtmlを取得するにはどうすればいいですか?

これは私の頭の上から完全に外れていますが、基本的にはjs-rendererをコードに作成する必要がありますか?私の推測では、JSは何とか実行する必要があるということです。これについてどうやって行くかについての任意の提案/ライブラリ/例?私はこれが行くことを好むだろうが、それは現実的に任意の言語ですることができます。

+5

これは決してうまくいかないでしょう。あまりにも深くなることはありませんが、Go httpクライアントはブラウザではありません。ページがブラウザに読み込まれると、ブラウザはスクリプトを解析して実行しますが、ここでは発生しません。あなたがページをこすりたい場合は、Web UIの自動化のために作られたSeliniumのようなものを使ってページを整える方がよいでしょう。もう1つのオプションは同じものに対して作られたphantomjsというツールですが、この文脈ではスクリプトは決して実行されません。その上に、あなたはjavascriptを使用する必要があります。あなたは、ページの読み込みにフックし、完了した後に実行されるcallbakcを持っている必要があります。 – evanmcdonnal

+0

コメントセクションをスクラップし、ajax URLを直接呼び出してコメントを読み込むとコメントが表示されます。 ご覧になるウェブサイトの例がありますか? – OscarRyz

答えて

0

あなたがサイトを所有している場合、またはコメントを読み込む呼び出しのURIを簡単に特定(または生成)できる場合は、DOM解析または任意のJS実行を気にするよりも、同じAJAX呼び出しを行う方が簡単でしょう。

その時点で、JSONとXMLの標準ライブラリは、そのような種類のデータをアンマーシャリングするのに優れているため、実際にはGoを使用するとよいでしょう。

2

http://phantomjs.org/のようなヘッドレスブラウザを使用してページを取得し、すべてのjavascriptを実行してコメントをスクラップできます。 この例は役に立ちます:https://github.com/ariya/phantomjs/blob/master/examples/phantomwebintro.js

しかし、phantomjsは別のバイナリアプリケーションです。インストールするのが簡単ではないかもしれません。

また、Firebugを使用してページを調査し、コメントを取得するために送信されたリクエストを確認して、このコールをエミュレートすることができます。

はそうかもしれないあなたが

1

を行って使用して/ajax/commentsページの取得と解析することができ、この

$.get("/ajax/comments", function(data) { 
    $(".comments").html(data); 
}); 

のようなJavaScriptコードを経由して、ページのロードのコメントは最近、私は同じ問題を持っていたとGoQueryは、私が試した多く を助けました最初のサイトはネットからのもので、JSイベントでコメントが読み込まれ、小さなスニペットが書き込まれました。あなたはそれを試してみるかもしれません。

doc,_ := goquery.NewDocument("http://www.ihg.com/holidayinn/hotels/us/en/san-francisco/sfocc/hoteldetail/hotel-reviews?scmisc=hotel_details_reviews_link_bottom") 
html_contents,_ := doc.Html() 
fmt.Println(html_contents) 

これは、JSイベントによって読み込まれるページのメインコンテンツの下にあるすべてのコメントを最初に表示します。

Good Luck!

関連する問題