所以现在java抓取数据的代码我们要趴取网页上的内容,只要告诉accept()这个方法,哪些节点要放进nodelist去,即 遇到哪些节点需要返回true 。
于是
public boolean accept(Node node){
Node need=node;
if(getStringsByRegex(node.getText())){
for(int i=0;i6;i++){
result.add(need.toPlainTextString());need=need.getPreviousSibling().getPreviousSibling();
}
return true;
}
return false;
}
Parser类在遇到节点,就把这个节点拿过去问accept(),于是accept()方法分析,如果满足getStringsByRegex(node.getText())就要了
接下来分析getStringsByRegex(),只剩下最后一步了,大家坚持?。?
String regex="td class=\"no\"";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(txt);
if (m.find()){
return true;
}
return false;
}
大家可以发现我们索要的每一段都是
tr align="center"
td 英镑/td
td100/td
td992.7/td
td1001.24/td
td993.26/td
td class="no"962.6/td
/tr
所以只要找到td class="no"这个节点就行了 , 我们用正则表达式去比较
String regex="td class=\"no\"";这个是比较标准(正则表达式 td class=”no”其中两个引号需要作为转义字符来表示 成\“)
变量txt是我们传过去的需要比较的节点的node.getText(),如果符合的话m.find就是true,于是getStringsByRegex()返回true,说明这个节点就是我们所需要的哪些节点 , 于是
for(int i=0;i6;i++){
result.add(need.toPlainTextString());need=need.getPreviousSibling().getPreviousSibling();
}
每一段html , 6个为一组,先是962.6,然后是993.26 , 1001.24,992.7,100,英镑分别被add进result这个ArrayListString中去,返回,这个ArrayList装的就是我们需要抓取的数据
大家可以把我们所获得的String数据数出来试试看,是不是我们需要的顺序,main()函数获得ArrayListString,就可以显示到我们所需要的Java widget上去了
java爬虫抓取指定数据根据java网络编程相关的内容,使用jdk提供的相关类可以得到url对应网页的html页面代码 。
针对得到的html代码 , 通过使用正则表达式即可得到我们想要的内容 。
比如,我们如果想得到一个网页上所有包括“java”关键字的文本内容,就可以逐行对网页代码进行正则表达式的匹配 。最后达到去除html标签和不相关的内容 , 只得到包括“java”这个关键字的内容的效果 。
从网页上爬取图片的流程和爬取内容的流程基本相同,但是爬取图片的步骤会多一步 。
需要先用img标签的正则表达式匹配获取到img标签 , 再用src属性的正则表达式获取这个img标签中的src属性的图片url , 然后再通过缓冲输入流对象读取到这个图片url的图片信息,配合文件输出流将读到的图片信息写入到本地即可 。
如何使用iterator获取java中从数据库的数据,代码如下,请指教可以使用struts的ognl标签s:iterator
s:iterator var="q" value="https://www.04ip.com/post/user"
属性的话s:properpoty value="https://www.04ip.com/post/username"
或者jstl的c:foreach
c:forEach var="map" items="${list}"
属性直接用el取
网上很多相关的用法 不过建议看api
如果用了struts2最好用ognl 功能很强大
java抓取数据的代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java抓取数据的代码有哪些、java抓取数据的代码的信息别忘了在本站进行查找喔 。
推荐阅读
- 微信平台直播27级,微信直播等级从0到29级要多少钱
- chatgpt检测官方,gocheck论文检测系统
- net小游戏怎么开发,网络小游戏开发
- chatgpt美国电话号码格式,美国电话号码怎么写
- python调用析构函数 python 解析函数
- 要换cpu需要注意什么,换cpu需要设置吗
- 网红小店如何做推广,网红店怎样宣传最有效
- 怎么在word中添加虚线,怎么在word里加虚线
- 抓住小游戏代码java java 小游戏代码