Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jsoup使用js解析android中的网页内容_Javascript_Android_Jsoup - Fatal编程技术网

Javascript 如何使用jsoup使用js解析android中的网页内容

Javascript 如何使用jsoup使用js解析android中的网页内容,javascript,android,jsoup,Javascript,Android,Jsoup,如何使用js结果在Android中解析HTML页面?主要的问题是,如果我简单地使用Jsoup.connect()方法,文档对象不包含js结果,因为js需要一些时间来运行。有可能延迟连接吗?如评论中所述,JSOUP不运行任何JavaScript。为此,您需要一个JavaScript解释器 因为您提到要阅读的页面需要一些时间来呈现,所以很明显您实际上需要运行JavaScript来呈现DOM 但是,如果查看页面的源代码,您可能会发现JavaScript实际上是如何呈现页面的。我认为有两种可能性: 1)

如何使用js结果在Android中解析HTML页面?主要的问题是,如果我简单地使用Jsoup.connect()方法,文档对象不包含js结果,因为js需要一些时间来运行。有可能延迟连接吗?

如评论中所述,JSOUP不运行任何JavaScript。为此,您需要一个JavaScript解释器

因为您提到要阅读的页面需要一些时间来呈现,所以很明显您实际上需要运行JavaScript来呈现DOM

但是,如果查看页面的源代码,您可能会发现JavaScript实际上是如何呈现页面的。我认为有两种可能性:

1) JavaScript实际上只是运行以动态呈现页面,其中包含初始访问时已加载的信息。这种情况经常发生在能够在第一次访问时发送所有相关数据的现代网站上(也称为同构渲染)。在这里,您可以获得网站上通常作为JSON对象提供的数据的所需信息。您可以提取JSON,然后用JSON解析器解析它


2) JavaScript实际上是异步加载一些数据的。在这种情况下,您可以识别这些http请求,并使用JSOUP获取这些数据。通常这些数据是JSON格式的,因此在这种情况下,使用JSON解析器读取相关部分也是有意义的。

Jsoup
不执行JavaScript,等待DOM准备就绪不是问题。你必须使用JavaScript引擎,比如Selenium或PhantomJS。我认为这不是最好的解决方案。你建议在我的应用程序中添加这么大的模块,只用于解析一个页面。它非常不实用。你不必使用它们。我只是说你需要一个有JavaScript引擎的东西,
Jsoup
没有。我明白,但你说的“东西”是什么?我不确定,你必须自己去弄清楚,我只给你举了两个例子,你说的对你要做的事情来说是不够的。