当前位置: 首页 > 面试题库 >

页面内容已加载JavaScript,但Jsoup看不到它

喻嘉泽
2023-03-14
问题内容

页面上的一个块由JavaScript填充内容,并且在用Jsoup加载页面后,没有任何信息。解析网页时,是否还有办法获取JavaScript生成的内容Jsoup

由于代码太长,因此无法在此处粘贴页面代码:http : //pastebin.com/qw4Rfqgw

这是我需要的内容元素: <div id='tags_list'></div>

我需要用Java获取此信息。最好使用Jsoup。元素是在JavaScript帮助下的字段:

<div id="tags_list">
    <a href="/tagsc0t20099.html" style="font-size:14;">разведчик</a>
    <a href="/tagsc0t1879.html" style="font-size:14;">Sr</a>
    <a href="/tagsc0t3140.html" style="font-size:14;">стратегический</a>
</div>

Java代码:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;

public class Test
{
    public static void main( String[] args )
    {
        try
        {
            Document Doc = Jsoup.connect( "http://www.bestreferat.ru/referat-32558.html" ).get();
            Elements Tags = Doc.select( "#tags_list a" );

            for ( Element Tag : Tags )
            {
                System.out.println( Tag.text() );
            }
        }
        catch ( IOException e )
        {
            e.printStackTrace();
        }
    }
}

问题答案:

JSoup是HTML解析器,不是某种嵌入式浏览器引擎。这意味着它完全不知道在初始页面加载后Javascript添加到DOM的任何内容。

为了访问这种类型的内容,你将需要一个嵌入式浏览器组件,关于此类组件有很多关于SO的讨论,例如,是否有一种将浏览器嵌入Java的方法?



 类似资料:
  • 下面是我需要的内容的元素: 我需要用Java获取这些信息。最好使用JSOUP。元素是JavaScript帮助下的字段: Java代码:

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

  • 问题内容: 如果不使用iframe,则可以加载以下内容: 与外部站点,例如somesitehere.com 页面何时加载?-我知道如何从文件加载内容,但是不确定如何加载整个网站吗? 非常感谢, 问题答案: 无需专门的操作就可以做到。由于标题中提到了jQuery,因此使用了jQuery。

  • 我试着在网络视图中查看http://artikelweb.com。网页显示得很好。但是,每当我从“热门作者”部分转到任何作者链接时,网页都会出现,但是加载后,报价没有显示。 在Google Chrome浏览器(移动)中,加载后会出现引号, 但是,在我的应用程序中,引用不会显示在网络视图中。 代码片段:

  • 本文向大家介绍ajax实现页面加载和内容删除,包括了ajax实现页面加载和内容删除的使用技巧和注意事项,需要的朋友参考一下 ajax最大的好处就在于加载和删除的时候不会跳转页面,现在的网页大多都会选择用ajax来写,相比嵌入PHP代码来说减少了代码量,同时加载页面也会比较快,下面是用ajax以数据库fruit表为例写的加载页面和水果的删除,刚开始用ajax可能写起来还是会比较手生,就当是练习好了。

  • 问题内容: 有没有办法做到这一点? page1.php-有 index.php-有 我可以以某种方式从div内部的page1.php中获取数据并将其加载到index.php中的div中吗? 我已经使用css-tricks网址中提供的代码完成了此操作:http : //css- tricks.com/examples/DynamicPage/ 但这使用哈希更改事件。我不想使用哈希功能,而只想使用加载