Jsoup常见问题

Jsoup爬虫出现的常见问题:

1.爬去链接出现404问题

解决方法:

加上.ignoreHttpErrors(true)属性

例如:

2.通过class爬取是出现class中有空格的形式

解决方法:

将空格用“.”来代替

例如:

Jsoup常见问题_第1张图片

 

3.jsoup出现UnknownHostException问题

java.net.UnknownHostException: bbs.ew86.com

    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:195)

    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)

    at java.net.Socket.connect(Socket.java:529)

    at sun.net.NetworkClient.doConnect(NetworkClient.java:158)

    at sun.net.www.http.HttpClient.openServer(HttpClient.java:411)

    at sun.net.www.http.HttpClient.openServer(HttpClient.java:525)

    at sun.net.www.http.HttpClient.(HttpClient.java:208)

解决方法:

使用try....catch方法

Jsoup常见问题_第2张图片

 

4.Jsoup分页爬虫

带有尾页的情况,可以根据尾页来进行获取前面的页面链接

代码示例:

// 获取分页的其他疾病

// 获取尾页的链接

Elements elements3 = Jsoup.connect(KeYiUrl).userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31").get().select("div.art_page").select("span").select("a");//获取所有分页的链接

for (Element element1 : elements3) {

    if(element1.text().toString().equals("尾页")){

        String[] strarray=element1.attr("abs:href").toString().split("-");

        pageList.add(strarray[0]+"-"+strarray[1]);   // 当前页

        int endPage = Integer.parseInt(strarray[2]);   // 获取总页数

    if(strarray[2].equals("2")){

        pageList.add(strarray[0]+"-"+strarray[1]+"-"+"2");// 如果就两页获取第二页

    }

if(Integer.parseInt(strarray[2])>2){

    for(int j=2;j<=endPage;j++){

        pageList.add(strarray[0]+"-"+strarray[1]+"-"+j);//页数数量大于2获取其他页

    }

}

}
// 遍历所有其它疾病链接取得疾病名和疾病链接

for(int i=0;i

 

你可能感兴趣的:(Jsoup)