我正在尝试从网站中提取所有链接。我在以前的程序中使用 Jsoup 来执行此操作,这里的问题是“更多内容”是通过按更多按钮生成的,它不会更改页面,它只是加载更多内容,所以我不确定如何查看所有使用 Java 和 Jsoup 的可用链接。
该网站是http://seekingalpha.com/symbol/msft,我只是试图提取指向特定公司(例如 Microsoft)的文章的所有链接。
我正在尝试从网站中提取所有链接。我在以前的程序中使用 Jsoup 来执行此操作,这里的问题是“更多内容”是通过按更多按钮生成的,它不会更改页面,它只是加载更多内容,所以我不确定如何查看所有使用 Java 和 Jsoup 的可用链接。
该网站是http://seekingalpha.com/symbol/msft,我只是试图提取指向特定公司(例如 Microsoft)的文章的所有链接。
你需要给自己一些可以监视你通过网络发出的请求的东西。您可以使用 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">•</span>
> Mon, Jan 14<span class='bullet'>•</span> <span class='comments'><a
> href='/article/1109901-microsoft-and-4-other-undervalued-stocks#comments_header'
> sasource='headlines_tabs'>44 Comments</a></span>
> </div>
> </div>
> </div>
> <div class="cleaner"></div>
> </li>
我会使用HtmlUnit。提取显示的链接,然后单击“更多”(HtmlUnit 将执行加载更多链接的 javascript))并提取新显示的链接