java爬虫问题二: 使用jsoup爬取数据class选择器中空格多选择怎么解决

问题描述:

在使用jsoup爬取其他网站数据的时候,发现class是带空格的多选择,如果直接使用doc.getElementsByClass(“class的值”),这种方法获取不到想要的数据。

爬取网站页面结构如下:

其中文章列表的div为:<div class="am-cf inner_li inner_li_abtest"></div>

我们可以看到其class的值为:am-cf inner_li inner_li_abtest。带空格的。多值的。

如果我们还是用getElementsByClass()这个方法获取的话,是获取不到的。eclipse中断点如下:

可以看到获取的值的长度size=0。没有获取到数据。

经过各方搜索,发现解决方案:使用的不是getElementsByClass()方法,可以使用其他方法。

先上成功后截图:

我们可以看到数据的长度size=20了。说明获取到数据了。

下面讲解select方法使用:

Elements org.jsoup.nodes.Element.select(String cssQuery)

样式选择器。

查看源码:

我们知道这个可以多个。

在看看我们案例中使用的是:div.am-cf.inner_li.inner_li_abtest。为什么要这么写呢?

查看需要爬取文章的页面结构:

?

这下就明白了为什么这么用了吧。
凯哥微信id:kaigejava

个人网站:www.kaigejava.com
凯哥网站地址:http://kaigejava.com/article/detail/121

原文地址:http://blog.51cto.com/kaigejava/2074816

时间: 2024-08-10 05:40:25

java爬虫问题二: 使用jsoup爬取数据class选择器中空格多选择怎么解决的相关文章

java爬虫一(分析要爬取数据的网站)

一.获取你想要抓取的网站地址: http://www.zhaopin.com/ 然后打开控制台,F12,打开.我用的是Chrome浏览器,跟个人更喜欢Chrome的控制台字体. 找到搜索栏对应的html标签: http://sou.zhaopin.com/jobs/searchresult.ashx?jl=%E6%B7%B1%E5%9C%B3&kw=Java&sm=0&p=1 也可以直接在地址栏输入这个网址.和之前在输入职位框输入java,地区为深圳是一致的,在之前点击"

Java爬虫系列之实战:爬取酷狗音乐网 TOP500 的歌曲

在前面分享的两篇随笔中分别介绍了HttpClient和Jsoup以及简单的代码案例: Java爬虫系列二:使用HttpClient抓取页面HTML Java爬虫系列三:使用Jsoup解析HTML 今天就来实战下,用他们来抓取酷狗音乐网上的 Top500排行榜音乐.接下来的代码中除了会用到HttpClient和Jsoup之外,还会用到log4j和ehcache,分别用来记录日志和实现缓存,如果看官对这两个不是很熟悉的话,请自行百度,现在网上的入门实例有很多,我就不专门记笔记了. 那为什么会想到爬取

java爬虫爬取的html内容中空格(&amp;nbsp;)变为问号“?”的解决方法

用java编写的爬虫,使用xpath爬取内容后,发现网页源码中的 全部显示为?(问号),但是使用字符串的replace("?", ""),并不能替换,网上找了一下,大概意思是显示的这个问号其实并不是问号,是乱码,主要是由于编码的问题导致的. 解决方法如下: //替换抓取内容中“ ”变为问号的问题 try { intro = new String(intro.getBytes(),"GBK").replace('?', ' ').replace('

关于爬取数据保存到json文件,中文是unicode解决方式

流程: 爬取的数据处理为列表,包含字典.里面包含中文, 经过json.dumps,保存到json文件中, 发现里面的中文显示未\ue768这样子 查阅资料发现,json.dumps 有一个参数.ensure_ascii =true,  它会将不是ascii字符的转义为json 字符串. 如果是false ,不是ascii字符的会包含在里面,即如果是中文就会保存中文. 但是我认为json这样写是有道理的. 用requests模块, requests.post(url,json=handled_da

借助Chrome和插件爬取数据

工具 Chrome浏览器 TamperMonkey ReRes Chrome浏览器 chrome浏览器是目前最受欢迎的浏览器,没有之一,它兼容大部分的w3c标准和ecma标准,对于前端工程师在开发过程中提供了devtools和插件等工具,非常方便使用.在爬取数据的过程中,最常用的应该是开发工具中的Element.Source和Network功能,分别查看DOM结构,源码和网络请求.同时,有很多基于Chrome浏览器的插件又给我们赋予了浏览器级别的能力,来处理数据. TamperMonkey Ta

爬虫简单之二---使用进程爬取起点中文网的六万多也页小说的名字,作者,等一些基本信息,并存入csv中

爬虫简单之二---使用进程爬取起点中文网的六万多也页小说的名字,作者,等一些基本信息,并存入csv中 准备使用的环境和库Python3.6 + requests + bs4 + csv + multiprocessing 库的说明 requests模拟计算机对服务器发送requests请求 bs4:页面分析功能,分析页面找到所需要的特定内容 xlwt:把爬取的内容存入csv文件中 multiprocessing:开启多进程爬取 1.准备URLs 起点中文网 起点中文网的URL:https://w

java通过Jsoup爬取网页(入门教程)

一,导入依赖 <!--java爬虫--> <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.10.3</version> </dependency> <!--httpclient依赖--> <dependency> <groupId>org.apa

Scrapy分布式爬虫打造搜索引擎——(二) scrapy 爬取伯乐在线

1.开发环境准备 1.爬取策略 目标:爬取“伯乐在线”的所有文章 策略选择:由于“伯乐在线”提供了全部文章的索引页 ,所有不需要考虑url的去重方法,直接在索引页开始,一篇文章一篇文章地进行爬取,一直进行到最后一页即可. 索引页地址:http://blog.jobbole.com/all-posts/ 2. 搭建python3虚拟环境 打开cmd,进入命令行,输入workon,查看当前存在的虚拟环境:  workon 为爬虫项目,新建python3虚拟环境: mkvirtualenv -p py

python爬虫实例详细介绍之爬取大众点评的数据

python 爬虫实例详细介绍之爬取大众点评的数据 一. Python作为一种语法简洁.面向对象的解释性语言,其便捷性.容易上手性受到众多程序员的青睐,基于python的包也越来越多,使得python能够帮助我们实现越来越多的功能.本文主要介绍如何利用python进行网站数据的抓取工作.我看到过利用c++和Java进行爬虫的代码,c++的代码很复杂,而且可读性.可理解性较低,不易上手,一般是那些高手用来写着玩加深对c++的理解的,这条路目前对我们不通.Java的可读性还可以,就是代码冗余比较多,