java扒取天气网站的数据

1:由于天气apk接口不稳定所以经常获取不到信息。于是就动手写一个扒取天气网站上的数据然后做成json,apk直接调用服务器上扒取的数据增加稳定性。

2:项目主要是用servlet然后正则表达式来提取网站信息。

3:我觉得比较难得地方就是如何写正确的正则来提取出需要的信息,以下记录每个接口中需要的正则

3.1

获取页面省份的编号

//page为需要提取信息的源信息

public static Hashtable<String, String>parseProvincePage(String page){

return getKeyValues(page, "<a href=\"dis.do?.+?class=\"c\">.+?</a>", "(?<=>).+?(?=</a>)", "(?<=pid=)[0-9]+");

}

3.2获取城市的编号

public static Hashtable<String,String>parseDitPage(String page){

return getKeyValues(page, "<a href=\"cout.do\\?.+?class=\"c\">.+?</a>", "(?<=>).+?(?=</a>)", "(?<=did=)[0-9]+");

}

3.3获取县城编号

public static Hashtable<String,String>parseCidPage(String page){

return getKeyValues(page, "<a href=\"index.do\\?cid=?.+?&pid=.+?class=\"c\">.+?</a>", "(?<=>).+?(?=</a>)", "(?<=cid=)[0-9]+(?=&)");

}

3.4

public static Hashtable<String, String> getKeyValues(String webPage,String tagRegex,String keyRegex,String valueRegex){

Hashtable<String,String>table=new Hashtable<String, String>();

for(String tag:getAllMathers(webPage,tagRegex)){

table.put(getMatcher(tag,keyRegex), getMatcher(tag, valueRegex));

}

return table;

}

3.5

7天详情

String regex="((?<=class=\"b\">)[\\s\\S]+?<br>[\\s\\S]+?(?=</))";

3.6 洗车指数

return getAllMathers(html, "(?<=洗车指数]</span>).+?(?=<)");

3.7 城市的详细天气状况

getAllMathers(detailHtml, "(?<=class=\"b\" id=\"\\w{9,15}\">).+?(?=<)|(?<=:).+?(?=<br>)");

4

项目主要的思路就是通过servlet来调用连接然后把信息保存在xml做缓存然后每小时查询一下网站扒取下信息来更新缓存数据,然后客户端就先查询xml中有没有缓存数据没有再通知服务器扒取。

5

项目的完成效果。我就不一一贴出代码了。需要的留言吧

时间: 2024-10-25 01:51:23

java扒取天气网站的数据的相关文章

java扒取网页,获取所需要内容列表展示

1.扒取原网页内容: 2.本地展示效果 3.代码 3 @ResponseBody 4 public Map<String, Object> findGuoWuYaoWen(HttpServletRequest request, ModelMap model, String area,String city) { 5 Map<String, Object> map = new HashMap<String, Object>(); 6 Map<String, Obje

如何扒取一个网站的HTML和CSS源码

一个好的前端开发,当看到一个很炫的页面的时候会本着学习的心态,想知道网站的源码.以下内容只是为了大家更好的学习,拒绝抄袭,支持正版. 1 首先我们要有一个chrome浏览器 2 在本地创建相关文件夹 3 打开喜欢的网站,右键审查元素,把代码放入到本地创建的txt文本中,然后更改文件后缀名 4 扒图片和CSS以及JS 方法一样,都是建立正确的路径 然后把代码粘过去

jsoup爬取某网站安全数据

package com.vfsd.net; import java.io.IOException; import java.sql.SQLException; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.

java抓取网页数据,登录之后抓取数据。

最近做了一个从网络上抓取数据的一个小程序.主要关于信贷方面,收集的一些黑名单网站,从该网站上抓取到自己系统中. 也找了一些资料,觉得没有一个很好的,全面的例子.因此在这里做个笔记提醒自己. 首先需要一个jsoup的jar包,我用的1.6.0..下载地址为:http://pan.baidu.com/s/1mgqOuHa 1,获取网页内容(核心代码,技术有限没封装). 2,登录之后抓取网页数据(如何在请求中携带cookie). 3,获取网站的ajax请求方法(返回json). 以上这三点我就用一个类

从高德地图大批量扒取数据,并写入excel

首先,源代码下载地址:http://down.51cto.com/data/2270088然后,如果有问题,或者是积分不够可以发送邮件到我的邮箱[email protected],我可以把源程序分享给大家,如果对用google抓取接口不熟悉的话,也可以直接找我,我的手机号码是:15656098064,很高兴能和各位同行分享,如果是打电话要我上厕所,我可以要骂人的呦~. 最后,直接上代码. package com.iwant.download2geodata; import java.io.Buf

扒取网站前端所有的东西,偷取前端效果。放iis中出无法写入webconfig错。

扒网站前端,自己大多数只做后端. 火狐安装ScrapBook插件,在FIREFOX上ALT键,保存页面,ALT+K在侧栏显示,导出文件.一个页面的所有文件(css js)都会打包生成新的文件和一个index. 一个网站,多个页面都可以这样扒取.然后一个页面放一个文件夹.多个文件夹放在一起,放进vs或iis中. 再自己改jquery和改前端和后端交互的事件等. 要设置文件夹权限,否则报错,无法“读取webconfig”文件的错误. 打开iis管理器,在“网站”右击,添加网站, 网站名,随便起.内容

盘点用Java抓取HTTP服务器和FTP服务器的网页数据或图片等数据的实用技巧

摘要 在信息时代,常常需要通过编程的方式来灵活整理各种网络数据.首先涉及到如何方便准确地抓取网络数据.下面盘点用Java程序来访问HTTP服务器以及FTP服务器的各种实用技巧.主要介绍了Java Socket.java.net.URL类.Selenuim软件包.Apache HttpClients.Apache FTPClient来和HTTP服务器以及FTP服务器通信的方法以及其优缺点. 参考资料 (1)本文参考了笔者所写的<Java网络编程核心技术详解>,2020年上半年出版. (2)Jav

使用NodeJS+AngularJS+MongoDB实现一个Web数据扒取-分析-展示的系统

说到Web爬虫,Python占了半壁江山.但是Web页面不是Python的强项了,如果需要扒取Web数据,再Mashup出来一个自己的系统,全端JS是个不错的解决方案(其实不用Python扒数据是因为我只能熟练掌握Python的HelloWorld编写). 那么开始做了. 00.要做一只麻雀 想做一个五脏俱全的系统先设计一下结构吧.思路是要扒数据先要配置怎么扒,然后去把扒来的数据处理成想要的东西,再然后存起来慢慢蹂躏.来张UML活动图压压惊.数据CRUD和如何展现不在设计图中,这部分打算做一个类

Python爬取天气网历史天气数据

我的第一篇博客,哈哈哈,记录一下我的Python进阶之路! 今天写了一个简单的爬虫. 使用python的requests 和BeautifulSoup模块,Python 2.7.12可在命令行中直接使用pip进行模块安装.爬虫的核心是利用BeautifulSoup的select语句获取需要的信息. pip install requests pip install bs4 以武汉市2017年5~7月的历史为例爬取天气网中武汉市的历史天气数据. 7月对应的网址为http://lishi.tianqi