这是在弄啥子嘞
想弄这个爬虫,抓一抓网页的信息这个念头,是前段时间面试阿里实习岗位的时候,一位资深面试官向我建议的。他觉得我理论层次达到,但是缺少实践的理解。所以最后也就不出所料的挂了。总结教训,吸取经验,决定要让自己对所学、所识的玩意可视化(这是什么鬼,怎么想到这个词语,暗自窃喜,(@__@) 嘻嘻)。
那到底弄什么呢?这个问题其实也没什么好想的,抓网页信息嘛!妈蛋?什么怎么抓,不会!从哪里入手,不知道!这就是我一开始的状态,后来得益于汪海的blog中python爬虫的启发,决定也用java玩一玩知乎,抓抓里面的2016年欧洲杯的热门话题、编辑推荐、今日最热。
那到底该怎么弄嘞
- 模拟上网过程(URL)
- 抓去需要的信息保存本地(正则表达式、I/O操作)
- 网页浏览中动态加载问题(ps:暂时不懂)
- 存储海量内容
先从google首页开始
打开google首页,见到的是这样的:
其实它的里面是这样的:
这一坨到底是什么,对于完全不懂HTML和CSS的人来说,就是翔…就是翔…
不用怕,我的目的很简单,就是从网页上抓取到goole首页的logo,就是红色标出来的区域:
关于HTML语言的属性和用法可以参考W3school上面学习一下,这里只要知道被<a>...</a>
括住的就是超链接,就可能是logo的链接地址,也就是要抓的目标。
OK,目标明确,接下来就是找大米做饭了。
直接上代码:
1 | /* |
有几个技术点,1、怎么向网页发送GET请求;2、正在表达式书写,可以参考在线测试工具;3、java中则表达式匹配,先编译字符串正则表达式成Pattern
对象,再用Pattern
对象的matcher()
方法活动Matcher
对象,最后find()
。
运行结果:
抓到图片链接直接在浏览器中输入可以得到如下的图片:
有基础就可以,抓去更复杂的东西咯,fighting,骚年!