java爬取网页内容 简单例子(1)——使用正则表达式
来源:互联网 发布:桌面切换软件 编辑:程序博客网 时间:2024/06/04 17:39
【本文介绍】
爬取别人网页上的内容,听上似乎很有趣的样子,只要几步,就可以获取到力所不能及的东西,例如呢?例如天气预报,总不能自己拿着仪器去测吧!当然,要获取天气预报还是用webService好。这里只是举个例子。话不多说了,上看看效果吧。
【效果】
我们随便找个天气预报的网站来试试:http://www.weather.com.cn/html/weather/101280101.shtml
从图中可用看出,今天(6日)的天气。我们就以这个为例,获取今天的天气吧!
最终后台打印出:
今天:6日天气:雷阵雨温度:26°~34°风力:微风
【思路】
1、通过url获取输入流————2、获取网页html代码————3、用正则表达式抽取有用的信息————4、拼装成想要的格式
其实最难的一点事第3点,如果正则表示式不熟,基本上在这一步就会挂掉了——例如我T_T。下面为了抽取到正确的数据,我匹配了多次,如果能一次匹配的话,那代码量就少多了!
【代码】
【详解】
34-49行:通过url获取网页的源码,没什么好说的。
96行:在网页上按F12,查看"今天"的html代码,发现如下图,所以我们第一步就是要过滤掉除这一段html代码外的东西。
(.*)(<li class=\'dn on\' data-dn=\'7d1\'>)(.*?)(</li>)(.*) 这个正则表达式,很容易看出可以分为下面5组:
(.*) :匹配除换行符外任意东西0-N次
(<li class=\'dn on\' data-dn=\'7d1\'>) :匹配中间那段heml代码一次
(.*?) : .*?为匹配的懒惰模式,意思是匹配除换行符外任意东西尽可能少次
(</li>) :匹配中间那段html代码一次
(.*) :匹配除换行符外任意东西0-N次
这样,我们就可用m.group(3)拿到匹配中间(.*?)的那一串代码了。即我们需要的“今天”的天气的代码。
101行:中间那一段代码拿出来后如下图所示、还有很多无用的标签。我们要想办法继续除去。方法同上。
106行:手动拼接上我们需要的字符串。
经过以上的处理,就完成了一个简单的爬取啦。
中间正则表达式部分最不满意,各路网友如果有好的建议麻烦留下宝贵的评论,感激不尽~
转载 :http://www.cnblogs.com/xiaoMzjm/p/3894805.html
- java爬取网页内容 简单例子(1)——使用正则表达式
- java爬取网页内容 简单例子
- java爬取网页内容 简单例子
- java爬取网页内容 简单例子(2)——附jsoup的select用法详解
- java爬取网页内容 简单例子(2)——附jsoup的select用法详解
- java爬取网页内容 简单例子(2)——附jsoup的select用法详解
- Java爬取网页内容的简单例子
- java简单爬取网页内容实例
- Java正则表达式爬取网页,贴出完整代码
- JAVA爬取网页内容
- JAVA爬取网页内容
- java用正则表达式分析读取网页内容(1)
- java读取(正则表达式分析)网页内容
- java读取(正则表达式分析)网页内容
- 第一次学会使用正则表达式爬网页,纪念下,下一步学习动态网页爬取
- 一个简单的java正则表达式例子
- 正则表达式的应用—爬取网页上的email地址
- 网页验证(使用正则表达式)——JavaScript
- protocol buffer使用范例5
- java 使用 comet4j 主动向客户端推送信息 简单例子
- 图像mask区域加亮
- 深入浅出理解和学习javascript
- 在Linux下adb连接不上android手机的终极解决方案
- java爬取网页内容 简单例子(1)——使用正则表达式
- 页面缓存
- xfire生成webservice,Android利用ksoap2访问webservice 之 服务器搭建
- 自动化运维工具Ansible详细部署
- 关于Cocos2dx的游戏暂停方法
- 蓝桥杯 回文数
- pushlet 之 Pushlet使用手把手实例
- POJ 3273 Monthly Expense (二分枚举)
- 正则入门:边界的定义与相对性