实时抓取网页数据(某个网站开发app获取的数据所在的网页代码大致如下)
优采云 发布时间: 2022-01-19 07:19实时抓取网页数据(某个网站开发app获取的数据所在的网页代码大致如下)
如果你想为某个网站开发一个app,可惜网站没有提供类似json或者xml的接口,只能硬解析html文件。
这里我假设网站中我要获取数据的网页的代码大致如下:
近期活动
-----------------------------------------
<a href='../news/?611.html' class='font1_1' target='_blank'>
<img src='../upFiles/infoImg/2013121376596505.JPG' οnerrοr="this.src='../inc_img/noPic.gif';" />
</a>
2013-12-13 21:15:51 点击:23 评论:0
<a href='../news/?611.html' class='font1_1' target='_blank'>
<img src='../inc_img/share_top.gif' alt='置顶' style='margin-right:5px;' />规划未来
</a>
摘要部分 <a href='../news/?611.html/span' class='font2_2' target='_blank'>
阅读全文>>
</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 个字符被截断,以删除不必要的信息,例如空格。
在实际测试中,需要根据网页格式来确定解析过程。这段代码只是一个简单的介绍。