java爬虫解析script_详解java爬虫jsoup解析多空格class数据
在使用jsoup爬取其他网站数据的时候,发现class是带空格的多选择,如果直接使用doc.getElementsByClass(“class的值”),这种方法获取不到想要的数据。
1、问题描述:
在使用jsoup爬取其他网站数据的时候,发现class是带空格的多选择,如果直接使用doc.getElementsByClass(“class的值”),这种方法获取不到想要的数据。
爬取网站页面结构如下:
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。为什么要这么写呢?
查看需要爬取文章的页面结构:
总结:以上就是关于java爬虫jsoup解析多空格class数据的详细内容,感谢大家的阅读和对脚本之家的支持。
java爬虫解析script_详解java爬虫jsoup解析多空格class数据相关推荐
- java 自动装载_java_详解Java的Spring框架下bean的自动装载方式,Spring容器可以自动装配相互协 - phpStudy...
详解Java的Spring框架下bean的自动装载方式 Spring容器可以自动装配相互协作bean之间的关系,这有助于减少对XML配置,而无需编写一个大的基于Spring应用程序的较多的和元素. 自 ...
- java 引用传递_详解java的值传递、地址传递、引用传递
详解java的值传递.地址传递.引用传递 一直来觉得对值传递和地址传递了解的很清楚,刚才在开源中国上看到一篇帖子介绍了java中的值传递和地址传递,看完后感受颇深.下边总结下以便更容易理解. 按照以前 ...
- java内部格式_详解java内部类的访问格式和规则
详解java内部类的访问格式和规则 1.内部类的定义 定义一个类来描述事物,但是这个事物其中可能还有事物,这时候在类中再定义类来描述. 2.内部类访问规则 ①内部类可以直接访问外部类中的成员,包括私有 ...
- java comparator相等_详解Java中Comparable和Comparator接口的区别
详解Java中Comparable和Comparator接口的区别 发布于 2020-7-20| 复制链接 摘记: 详解Java中Comparable和Comparator接口的区别本文要来详细分析一 ...
- java switch中if_详解java中if语句和switch的使用
if语句 说起if语句,那么不得不提起三元运算符 a>b?c=0:c=1; 如果a>b结果为true,那么c=0,为false,c=1 那么下面看下if语句 if(a>b)c=0; ...
- python java混合编程_详解java调用python的几种用法(看这篇就够了)
java调用python的几种用法如下: 在java类中直接执行python语句 在java类中直接调用本地python脚本 使用Runtime.getRuntime()执行python脚本文件(推荐 ...
- Java implement意思_详解JAVA中implement和extends的区别
详解JAVA中implement和extends的区别 发布于 2020-4-14| 复制链接 摘记: 详解JAVA中implement和extends的区别extends是继承父类,只要那个类不是声 ...
- java sleep唤醒_详解Java中的线程让步yield()与线程休眠sleep()方法
Java中的线程让步会让线程让出优先级,而休眠则会让线程进入阻塞状态等待被唤醒,这里我们对比线程等待的wait()方法,来详解Java中的线程让步yield()与线程休眠sleep()方法 线程让步: ...
- java runnable 异常_详解Java中多线程异常捕获Runnable的实现
详解Java中多线程异常捕获Runnable的实现 1.背景: Java 多线程异常不向主线程抛,自己处理,外部捕获不了异常.所以要实现主线程对子线程异常的捕获. 2.工具: 实现Runnable接口 ...
最新文章
- 小程序大转盘红包雨营销组件
- Servlet-forward转发
- 将字符串a复制到字符串b
- C# 爬虫:疫情实时信息图
- 快过年了,分享 25 个 JS 实用技巧送给大家吧
- form跳转php页面,form表单页面跳转方式提交练习
- 第二弹!谷歌大脑2017总结下篇:Jeff Dean梳理6大领域研究
- 叶片制成切片的结构示意图_更集成的发动机!洞悉UTC 3D打印整体式半叶片
- (转)区块链:哈希、公钥、私钥、加密、数字签名、数字证书、默克尔树、零知识证明
- mysql可以用except吗_MYSQL 支持EXCEPT语句吗? 例子里EXCEPT后面的换成NOT IN可以吗? 两个例子错在哪里啊?...
- mybatis 链接DB2查询报错,必需的字符转换器不可用。 ERRORCODE=-4220, SQLSTATE=null
- 解决 Chrome 使用高德地图卡顿
- Summation Prove (Intro. to Algo. Open Course Episode 5) in Quick Sort
- 用python完成商品的名称、价格表显示,用户选择商品并统计结果
- 设置导航栏字体大小,颜色和加粗字体的方法
- 奥迪坚技术革新带动信用卡呼叫中心管理升级
- 在php中利用gd2库的函数创建水印
- c++nullptr(空指针常量)、constexpr(常量表达式)
- 提交代码到git仓库
- (dedecms)织梦搬家后无法更新栏目