实时抓取网页数据(某个网站开发app获取的数据所在的网页代码大致如下)

优采云 发布时间: 2022-01-19 07:19

  实时抓取网页数据(某个网站开发app获取的数据所在的网页代码大致如下)

  如果你想为某个网站开发一个app,可惜网站没有提供类似json或者xml的接口,只能硬解析html文件。

  这里我假设网站中我要获取数据的网页的代码大致如下:

  

近期活动

-----------------------------------------

<a href=&#39;../news/?611.html&#39; class=&#39;font1_1&#39; target=&#39;_blank&#39;>

<img src=&#39;../upFiles/infoImg/2013121376596505.JPG&#39; οnerrοr="this.src=&#39;../inc_img/noPic.gif&#39;;" />

</a>

 2013-12-13 21:15:51  点击:23  评论:0

<a href=&#39;../news/?611.html&#39; class=&#39;font1_1&#39; target=&#39;_blank&#39;>

<img src=&#39;../inc_img/share_top.gif&#39; alt=&#39;置顶&#39; style=&#39;margin-right:5px;&#39; />规划未来

</a>

摘要部分 <a href=&#39;../news/?611.html/span&#39; class=&#39;font2_2&#39; target=&#39;_blank&#39;>

阅读全文>>

</a>

----------------------------------------------------------------

  所需数据是日期、标题、摘要和详细内容链接。

  这里我使用的是jsoup工具包,代码实现也很简单,就几行

  public class AnaData {

public static void main(String[] args){

Document document = null; //document文档

try {

document = Jsoup.connect("xxx.html").timeout(4000).get();

Element element = document.getElementsByClass("listBox2").first();//找到listBox2

Element element2 = element.child(0);//第一组信息

for(Element element3:element2.children()){ //ul 下面有 和

if(element3.tagName().equals("li")){//只要部分

String date=new String(element3.getElementsByClass("addi").first().text().substring(1, 19));//获取新闻时间

String note=new String(element3.getElementsByClass("note").first().text());//获取新闻摘要

Element element4=element3.select("h4").first();

String title=new String(element4.select("a").first().text());//获取新闻标题

String url=new String(element4.select("a").attr( "abs:href"));//获取新闻标题

System.out.print("\n"+title+date+"\n"+note+url+"\n");

}

}

}catch (IOException e) {

e.printStackTrace();

}

}

  时间部分从 1 到 19 个字符被截断,以删除不必要的信息,例如空格。

  在实际测试中,需要根据网页格式来确定解析过程。这段代码只是一个简单的介绍。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线