htmlunit抓取动态网页(.xmlmaven依赖代码 )

优采云 发布时间: 2021-09-30 14:22

  htmlunit抓取动态网页(.xmlmaven依赖代码

)

  今天,当使用jsoup作为爬虫程序时,我发现jsoup只能抓取静态页面,这对支持Ajax和JSON动态生成的页面不友好

  因此,我尝试将param和data header与请求一起直接发送,希望直接返回JSON数据,但可能无法成功,因为网站接口不支持它

  在尝试其他方法后,从互联网上发现htmlunit可以用来模拟浏览器,生成动态网页,然后用jsoup解析生成的动态网页

  下面是pom.xml Maven依赖项代码

  下面是Java代码

  import com.gargoylesoftware.htmlunit.WebClient;

import com.gargoylesoftware.htmlunit.html.HtmlPage;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;

import java.io.IOException;

public class JsoupTest {

public static void main(String[] args) {

queryDocument("北斗");

}

public static void queryDocument(String documentName){

WebClient browser = new WebClient();

browser.getOptions().setCssEnabled(false);

browser.getOptions().setJavaScriptEnabled(true);

browser.getOptions().setThrowExceptionOnScriptError(false);

String url = "http://oar.nstl.gov.cn/Paper/Search?searchKey="+documentName+"&x=0&y=0";

try {

HtmlPage htmlPage = browser.getPage(url);

browser.waitForBackgroundJavaScript(3000);

Document document = Jsoup.parse(htmlPage.asXml());

Element paper = document.getElementById("paper");

System.out.println(paper);

} catch (IOException e) {

e.printStackTrace();

}

}

}

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线