标签:html javascript java parsing jsoup
页面上的一个块由JavaScript填充内容,在使用Jsoup加载页面后,没有任何信息.有没有办法在使用Jsoup解析页面时获取JavaScript生成的内容?
无法粘贴页面代码,因为它太长: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有很多讨论,例如Is there a way to embed a browser in Java?
标签:html,javascript,java,parsing,jsoup 来源: https://codeday.me/bug/20190915/1804894.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。