当前位置: 首页 > 知识库问答 >
问题:

用Jsoup刮雅虎答案

方博
2023-03-14

我正试图从雅虎答案中刮取关键词搜索的结果,在我的案例中,“酒精上瘾”。我正在使用Jsoup和URL修改来浏览搜索结果的页面以刮取结果。然而,我注意到,即使我为“最新”结果输入了URL,它仍然显示“相关性”结果,更糟糕的是,结果与浏览器上显示的不完全相同。

例如,最新结果的URL是:http://answers.yahoo.com/search/search_result?p=collow+addiction&s=1&sort=new

相关结果的URL为:http://answers.yahoo.com/search/search_result?p=collower+addiction&s=1&sort=rel

当你转到下一页时,“1”将变为2、3、4等(每页有10个结果)。

下面是我刮书页的方法:

String urlID = "";
String end = "&sort=new";
String glob = "http://answers.yahoo.com/search/search_result?p=alcohol+addiction&s=";
Integer forumID = 0;

while(nextPageIsThere){
    forumID++;
    System.out.println("Now extracting the page: "+forumID);
    try {
        urlID = glob+forumID+end;
        System.out.println(urlID);
        exdoc = Jsoup.connect(urlID).get();
        java.util.Date date= new java.util.Date();
    } catch (IOException e) {
        e.printStackTrace();
    }

...

更让人困惑的是,即使我增加了页码,而系统输出显示URL正在变为:

http://answers.yahoo.com/search/search_result?P=collow+addiction&S=2&sort=new

而且

http://answers.yahoo.com/search/search_result?p=collow+addiction&s=3&sort=new

它仍然一遍又一遍地刮着第1页所示的相同页面。我知道我的代码没有错。我已经html" target="_blank">调试了好几个小时了。我认为这与JSOUP.CONNECT和/或Yahoo Answer可能阻止机器人有关?同时,我不认为真的是那样。

有人知道为什么会这样吗?

共有1个答案

游炳
2023-03-14

JSoup只处理静态HTML,他们不能解析像这样的动态页面,在页面加载Ajax请求或JavaScript修改后下载内容。

尝试用HTMLUnit阅读此页面,此解析器支持JS页面。

它具有相当好的JavaScript支持(正在不断改进),甚至能够使用相当复杂的AJAX库,根据您想要使用的配置模拟Firefox或Internet Explorer。

 类似资料:
  • 我正在尝试使用jSoup刮一个网站,有以下内容。我对jSoup很陌生,还在想办法。我想做的是能够采取的产品名称和价格,并把他们放入一个excel文件的名称在A列和价格在B列,0.00可以忽略或放在C列,无论什么更容易。任何帮助都将是伟大的,因为我知道有人会问,这不是一个家庭作业。 谢谢提前,我真的很感激。 **这是否是表元素,因为这是列表前的“表”代码,如果不是,我应该在html代码中查找什么?

  • 我正在使用Xamarin.Forms进行一个股票观察列表项目。在我使用IEX Cloud API之前收集股票价格,但我正在尝试使用Yahoo Finance API。Im使用以下代码,但返回空。 有人能帮我解决这个问题吗?

  • 我是一个Java程序员新手,现在才开始扩展到库、API等领域。我现在有了一个比较简单的想法,当我不做作业的时候,可以成为我的宠物项目。 我感兴趣的是从几个不同的站点刮取html,并构建看起来像“艺术家-”曲目名称“”的字符串。我有一个网站工作的方式,我想,但我觉得它可以做得更顺利...以下是我为A站点所做的工作的简要介绍: 我让JSoup为plrow类的所有内容创建元素,如下所示: 从那里,我创建

  • 我正在开发一个图像抓取器,它使用JSOUP抓取各种子reddit的第一页。然而,出现的问题是,当试图抓取NSFW子reddit时,reddit重定向到超过18个身份验证页面,而抓取程序则抓取身份验证页面。我是刮擦的新手,并且理解这是一个新手问题,但任何帮助将不胜感激,因为我完全迷失了。

  • 现在大家有任何线索,如何刮那些在页面完全加载后用ajax或JavaScript显示的内容。 提前感谢!!

  • 我有下面的代码,我正在使用从flipkart网站的图片,所有的工作都很好,但我不知道为什么它只是检索前四个图片,而不是所有的图片出现在网页上。帮助我排序这一个