1

Jsoup を使用して Web サイトを破棄します。

doc = Jsoup.connect(String.valueOf(urls[0])).userAgent("Mozilla").get();    

リンクは次のとおりです。

http://www.yelp.com/search?find_desc=restaurant&find_loc=willowbrook%2C+IL&ns=1#l=p:IL:Willowbrook::&sortby=rating&rpp=40

コマンド ラインのリンクにrpp=40パラメータを追加して、ページごとに 40 件の結果を表示します。ページ ビュー ソースですべての結果を確認できます。Jsoup は静的コンテンツ専用であり、AJAX/JS ライブラリ技術を使用してコンテンツを生成する Web サイトを取得できないことを私は知っています。しかし、Jsoup がページ ビュー ソースを介してブラウザで表示できるのと同じコンテンツを取得できないのはなぜですか? ページ ビュー ソースには 40 件の結果が表示されますが、Jsoup は 10 件の結果から要素を取得できますか? ページ ビュー ソースを介して表示されるすべての要素を取得するにはどうすればよいですか。

4

1 に答える 1

1

簡単な回答Jsoup は Javascript を実行できません。

長い答え

http://www.yelp.com/search?find_desc=restaurant&find_loc=willowbrook%2C+IL&ns=1#l=p:IL:Willowbrook::&sortby=rating&rpp=40

探している Web ページは、パラメーターを指定して Http Get を受け入れます。通常のブラウザでは、パラメータを受け入れてページをロードします。しかし、willowbrookがチェックされていません(あなたの例では)。ページをロードした後にJSをロードし、Javascriptが検索結果のFlitersのチェックボックスを実行します。したがって、Jsoup を使用すると、'willowbrook' をフィルタリングせずに 'state=IL' をロードするため、より多くの結果が得られます。

于 2013-02-16T20:11:23.613 に答える