在使用jsoup爬取其他网站数据的时候,发现class是带空格的多选择,如果直接使用doc.getElementsByClass(“class的值”),这种方法获取不到想要的数据。
工具/原料
jsoup
方法/步骤
2
其中文章列表的div为:
我们可以看到其class的值为:am-cf inner_li inner_li_abtest。带空格的。多值的。如果我们还是用getElementsByClass这个方法获取的话,是获取不到的。eclipse中断点如下:3
可以看到获取的值的长度size=0。没有获取到数据。经过各方搜索,发现解决方案:使用的不是getElementsByClass方法,可以使用其他方法。先上成功后截图:
4
我们可以看到数据的长度size=20了。说明获取到数据了。下面讲解select方法使用:Elements org.jsoup.nodes.Element.select(String cssQuery)
5
样式选择器。查看源码:
6
我们知道这个可以多个。在看看我们案例中使用的是:div.am-cf.inner_li.inner_li_abtest。为什么要这么写呢?查看需要爬取文章的页面结构:
注意事项
获取方法:使用select(html元素名称 .class值.class值)