我的学习笔记01-从工行网页抓取白银价格
来源:互联网 发布:串行12864接单片机 编辑:程序博客网 时间:2024/04/28 17:32
/**
本人是一名业余爱好者,水平是用java敲一个hello world都需要思考几秒的菜鸟,所以肯定有比我所用方法更优的解决方法,欢迎指点。
学习思路:以具体实用项目为目标,分析问题,收集资料,快速学习。先得到与任务紧密联系的广泛、片段的知识,完成任务后,再对感兴趣的部分深入挖掘。特点是敏捷有成就感。
学习辅助工具:番茄钟app
**/
目标:一个纸白银app。功能:抓取显示当前纸白银价格,并与自己的设定值比较,触线则闹铃提醒进行交易。
任务分解:1 抓取 2 比较 3 闹钟
虽然现在还不会android下的比较和闹钟,但感觉不难学会。重点在抓取。
探索抓取的解决方法。
前期弯路:
正常应该是典型的C/S结构,数据来自数据库,主要工作在客户端开发。但实时的白银价格数据库我没有,此路不通。
1 发现绝大部分白银数据来源来自网站www.kitco.cn,免费提供网站嵌入曲线gif图,一分钟刷新一次。很方便,HTML下<img src="http://www.kitconet.com/images/quotes_2a.gif" >就可以了,但数据是图片,没有单纯的数值源,若要抓取,需要模式识别知识,如果问题解决了,一般网站验证码也就形同虚设了,目测难度很大。
2 百度“白银价格”,可以得到数值,来源是与企业的合作,百度提供“开发平台”,企业提供符合百度格式的数据,价格更新较慢,而且用浏览器查看网页源码,发现结构比较复杂。
3 工行数据准确,提供数值,特定页面流量小,适合抓取。
白银价格来源:http://www.icbc.com.cn/ICBCDynamicSite/Charts/GoldTendencyPicture.aspx
工具:jsoup。jsoup是一个开源java库,可以通过url抓取HTML内容,并进行parse(解析)。也方便在android下应用。官网:http://jsoup.org/。本想兴致勃勃的把其翻译了,写一篇翻译文章,结果发现已经有翻译好的了:http://www.open-open.com/jsoup/
由于是零基础,所以在jsoup前,花了两天时间学习了下HTML,CSS,JAVASCRIPT的简单基础知识。推荐:w3school。感觉HTML,CSS就是文本编辑,不算编程,难度不大;javascript好上手,功能强大,看到cookie没看了,后面继续。jsoup提供手册和源码,是一个极好的学习资料。其称手册为“cookbook",哈,第一次听到把code比作cook recipe实在MIT网络课程讲python的一节课上,很喜欢。每一个好的程序员都是一位好大厨!
jsoup的第一次使用
安装
来源:jsoup.org
内容:jsoup-1.7.2.jar;jsoup-1.7.2-source.jar
怎么使用?(太基础了,cookbook没讲,零基础伤不起,大神勿喷)
错误尝试:
环境:WIN7 64bit; ECLIPSE adt-bundle-windows-x86-20130219;JAVA 1.7.0_15;
直接粘贴到java文件夹下jre,import报错。
成功尝试:
1 在自己的项目下新建一个文件夹“lib”
2 eclipse 项目右键,refresh
3 refresh后效果
4 build path
5 导入成功
6 敲了一个Jsoup的例子程序,解析的是baidu。例子中子函数是在尾部,报错,移到头部就好了。
7 从org学习API,发现最直接的是得到body的string,得到如下串:
8 急补java String的知识,从长串中提取特定信息。成功!看到4.27那一刻,我很激动!一个周末的成果。
决定在app出来后,好好把Jsoup的源码研究一下。
- 我的学习笔记01-从工行网页抓取白银价格
- 我的学习笔记02-Android下利用Jsoup从工行网页提取白银价格到自己的app
- 从网页抓取数据的一般方法
- 从网页抓取数据的一般方法
- 从网页抓取数据的一般方法
- 从网页抓取数据的一般方法
- 从网页抓取城市间的距离
- Python学习笔记-简易抓取网页-1
- 学习笔记-python抓取网页数据
- Python学习笔记-简易抓取网页-2
- 我的网页模板抓取程序
- 从网页抓取图片
- 我的python学习之路----Python 3 抓取网页的 N 种方法
- 经纬财富:漯河消息面对现货白银价格的影响
- httpclient学习抓取网页
- 记我的第一次批量抓取网页图片的经历
- 从网页或网站中抓取RSS地址的类
- C# 从网页抓取数据的一般方法
- 已知数组a[n],求数组b[n].要求:b[i]=a[0]*a[1]*……*a[n-1]/a[i],不能用除法。
- Windows8的JDK环境配置
- 链表反转的实现(递归反转链表,非递归反转链表)
- exchange webservice访问类(日程新增和删除)
- The Elements of Style
- 我的学习笔记01-从工行网页抓取白银价格
- 设计模式——装饰器(Decorator)
- 递归倒序输出链表
- 链表逆序
- 如何让菜单点击后不消失
- hdu 1717 小数化分数2
- mysql数据库的全量备份
- IO学霸
- 为图层上的N多怪物创建站立时的动画