我正在尝试从网站中提取所有链接。我在之前的程序中使用Jsoup来做到这一点,这里的问题是通过按下更多按钮生成“更多内容”并且它不会更改页面,它只是加载更多内容所以我不知道如何看到所有使用Java和Jsoup的可用链接。
该网站为http://seekingalpha.com/symbol/msft,我只想提取特定公司(如Microsoft)文章的所有链接。
答案 0 :(得分:1)
你需要得到一些你可以监视你正在通过网络发出的请求的东西。您可以使用Chrome中的“网络”标签观看http流量,但我个人喜欢Charles。无论如何,如果你看看点击更多按钮会发生什么,你会看到正在发出POST请求(当然使用AJAX),看起来像这样:
http://seekingalpha.com/account/ajax_headlines_content 200 POST seekingalpha.com / account / ajax_headlines_content 432 ms 5.94 KB完成
在标题中,参数是:
输入所有 第2页 slu ms 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>
答案 1 :(得分:0)
我会使用HtmlUnit。提取显示的链接,然后单击“更多”(HtmlUnit将执行加载更多链接的javascript))并提取新显示的链接