1

Web サイトからすべてのリンクを抽出しようとしています。これを行うために以前のプログラムで Jsoup を使用していましたが、ここでの問題は、「詳細」ボタンを押すと「詳細コンテンツ」が生成され、ページが変更されないことです。単により多くのコンテンツが読み込まれるため、すべてのコンテンツを表示する方法がわかりません。 Java と Jsoup を使用して利用可能なリンク。

Web サイトはhttp://seekingalpha.com/symbol/msftで、Microsoft などの特定の会社の記事へのすべてのリンクを抽出しようとしています。

4

2 に答える 2

1

ネットワーク経由で行っているリクエストをスパイできるものを自分で取得する必要があります。Chrome の [Network] タブを使用して http トラフィックを監視できますが、個人的には Charles が気に入っています。いずれにせよ、詳細ボタンをクリックすると何が起こるかを調べると、POST リクエストが (もちろん AJAX を使用して) 行われていることがわかります。これは次のようになります。

http://seekingalpha.com/account/ajax_headlines_content 200 POST seekalpha.com /account/ajax_headlines_content 432 ミリ秒 5.94 KB 完了

ヘッダーのパラメーターは次のとおりです。

すべてのページを入力 2 スラッグ msft is_symbol_page true

したがって、私があなたなら、必要なすべてのコンテンツを取得するまで、page パラメータをカウントアップして POST リクエストを作成することで、それをエミュレートします。ちなみに、返されたコンテンツは非常に解析しやすい html フラグメントでした。

> <div class="symbol_articles_list mini_category">
>     <div>
>       <ul>
>           <li>
>               <div class="fl">
>                 <a class="small_picture" href="/author/the-part-time-investor">
>                   <img height="20" width="20" src="http://static1.cdn-seekingalpha.com/images/users_profile/000/541/113/small_pic.png?1352646193"/>
>                 </a>
>               </div>
>             <div class="content">
>               <div class="symbol_article">
>                 <a href="/article/1109901-microsoft-and-4-other-undervalued-stocks"
> sasource="portfolio_rel">Microsoft And 4 Other Undervalued Stocks</a>
>                 <div class="date_on_by">
>                     <a sasource="portfolio_rel" href="/author/the-part-time-investor">The Part-time Investor</a>
>                   <span class="bullet">&bull;</span>
>                   Mon, Jan 14<span class='bullet'>&bull;</span> <span class='comments'><a
> href='/article/1109901-microsoft-and-4-other-undervalued-stocks#comments_header'
> sasource='headlines_tabs'>44&nbsp;Comments</a></span>               
> </div>
>               </div>
>             </div>
>             <div class="cleaner"></div>
>           </li>
于 2013-01-18T21:39:03.627 に答える
0

HtmlUnitを使用します。表示されたリンクを抽出し、「詳細」をクリックして(HtmlUnitはより多くのリンクをロードするJavaScriptを実行します))、新しく表示されたリンクを抽出します

于 2013-01-18T21:34:08.447 に答える