在使用jsoup爬取其他網(wǎng)站數(shù)據(jù)的時候,發(fā)現(xiàn)class是帶空格的多選擇,如果直接使用doc.getelementsbyclass(“class的值”),這種方法獲取不到想要的數(shù)據(jù)。
1、問題描述:
在使用jsoup爬取其他網(wǎng)站數(shù)據(jù)的時候,發(fā)現(xiàn)class是帶空格的多選擇,如果直接使用doc.getelementsbyclass(“class的值”),這種方法獲取不到想要的數(shù)據(jù)。
爬取網(wǎng)站頁面結(jié)構(gòu)如下:
2、其中文章列表的div為:<div class="am-cf inner_li inner_li_abtest"></div>
我們可以看到其class的值為:am-cf inner_li inner_li_abtest。帶空格的。多值的。
如果我們還是用getelementsbyclass這個方法獲取的話,是獲取不到的。eclipse中斷點如下:
3、可以看到獲取的值的長度size=0。沒有獲取到數(shù)據(jù)。
經(jīng)過各方搜索,發(fā)現(xiàn)解決方案:使用的不是getelementsbyclass方法,可以使用其他方法。
先上成功后截圖:
4、我們可以看到數(shù)據(jù)的長度size=20了。說明獲取到數(shù)據(jù)了。
下面講解select方法使用:
elements org.jsoup.nodes.element.select(string cssquery)
5、樣式選擇器。
查看源碼:
6、我們知道這個可以多個。
在看看我們案例中使用的是:div.am-cf.inner_li.inner_li_abtest。為什么要這么寫呢?
查看需要爬取文章的頁面結(jié)構(gòu):
總結(jié):以上就是關(guān)于java爬蟲jsoup解析多空格class數(shù)據(jù)的詳細(xì)內(nèi)容,感謝大家的閱讀和對服務(wù)器之家的支持。
原文鏈接:https://jingyan.baidu.com/article/c85b7a64bfca85003bac95ed.html