1

我正在尝试从网站中提取所有链接。我在以前的程序中使用 Jsoup 来执行此操作,这里的问题是“更多内容”是通过按更多按钮生成的,它不会更改页面,它只是加载更多内容,所以我不确定如何查看所有使用 Java 和 Jsoup 的可用链接。

该网站是http://seekingalpha.com/symbol/msft,我只是试图提取指向特定公司(例如 Microsoft)的文章的所有链接。

4

2 回答 2

1

你需要给自己一些可以监视你通过网络发出的请求的东西。您可以使用 Chrome 中的“网络”选项卡查看 http 流量,但我个人喜欢 Charles。无论如何,如果您查看单击更多按钮时发生的情况,您会看到正在发出 POST 请求(当然使用 AJAX),看起来像这样:

http://seekingalpha.com/account/ajax_headlines_content 200 POST seekalpha.com /account/ajax_headlines_content 432 毫秒 5.94 KB 完成

在标题中,参数是:

键入所有第 2 页 slugs msft is_symbol_page true

因此,如果我是您,我将通过使用页面参数计数的 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 回答