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

优采云 发布时间: 2021-11-13 19:17

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

)

  今天在使用jsoup做爬虫功能的时候发现jsoup只能抓取静态页面,对ajax和json动态生成的页面的支持不友好。

  所以我尝试着把param和data header直接和request一起发送,希望能直接返回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人工客服


线