問(wèn)題描述:
在使用jsoup爬取其他網(wǎng)站數(shù)據(jù)的時(shí)候,發(fā)現(xiàn)class是帶空格的多選擇,如果直接使用doc.getElementsByClass(“class的值”),這種方法獲取不到想要的數(shù)據(jù)撵渡。
爬取網(wǎng)站頁(yè)面結(jié)構(gòu)如下:
其中文章列表的div為:
我們可以看到其class的值為:am-cf inner_li inner_li_abtest。帶空格的。多值的爪喘。
如果我們還是用getElementsByClass()這個(gè)方法獲取的話,是獲取不到的纠拔。eclipse中斷點(diǎn)如下:
可以看到獲取的值的長(zhǎng)度size=0秉剑。沒(méi)有獲取到數(shù)據(jù)。
經(jīng)過(guò)各方搜索稠诲,發(fā)現(xiàn)解決方案:使用的不是getElementsByClass()方法侦鹏,可以使用其他方法。
先上成功后截圖:
我們可以看到數(shù)據(jù)的長(zhǎng)度size=20了臀叙。說(shuō)明獲取到數(shù)據(jù)了略水。
下面講解select方法使用:
Elements?org.jsoup.nodes.Element.select(String?cssQuery)
樣式選擇器。
查看源碼:
我們知道這個(gè)可以多個(gè)劝萤。
在看看我們案例中使用的是:div.am-cf.inner_li.inner_li_abtest渊涝。為什么要這么寫(xiě)呢?
查看需要爬取文章的頁(yè)面結(jié)構(gòu):
?
這下就明白了為什么這么用了吧床嫌。
凱哥微信id:kaigejava
個(gè)人網(wǎng)站:www.kaigejava.com
凱哥網(wǎng)站地址:http://kaigejava.com/article/detail/121