直接看爬虫框架有时会很吃力,建议从简单的程序一步步入手。
首先以百度首页为例通过http get的方式获取百度首页的内容
小编整理了一份java学习资料,私信回复【01】,获取源码。
没错,就是这一坨翔一样的东西。这就是百度页面的源代码。
临时需求:
获取百度Logo的大熊爪子的图片链接。
一.封装get方法
这样看起来稍微整洁了一点,请原谅我这个强迫症。
接下来的任务,就是从获取到的一大堆东西里面找到那个图片的链接。
我们首先可以想到的方法,是对页面源码的字符串result使用indexof函数进行String的子串搜索。
没错这个方法是可以慢慢解决这个问题,比如直接indexOf("src")找到开始的序号,然后再稀里哗啦的搞到结束的序号。
不过我们不能一直使用这种方法,毕竟草鞋只适合出门走走,后期还是需要切假腿来拿人头的。
请原谅我的乱入,继续。
那么我们用什么方式来寻找这张图片的src呢?
没错,正如下面观众所说,正则匹配。
如果有同学不太清楚正则,可以参照这篇文章:[Python]网络爬虫(七):Python中的正则表达式教程。
简单来说,正则就像是匹配。
比如三个胖子站在这里,分别穿着红衣服,蓝衣服,绿衣服。
正则就是:抓住那个穿绿衣服的!
然后把绿胖子单独抓了出来。
就是这么简单。
但是正则的语法却还是博大精深的,刚接触的时候难免有点摸不着头脑,
向大家推荐一个正则的在线测试工具:正则表达式在线测试。
有了正则这个神兵利器,那么怎么在java里面使用正则呢?
先来看个简单的小李子吧。
啊错了,小栗子。
运行结果:
index.html
没错,这就是我们的第一个正则代码。
这样应用的抓取图片的链接想必也是信手拈来了。
我们将正则匹配封装成一个函数,然后将代码作如下修改:
好的,现在万事俱备,只差一个正则语法了!
那么用什么正则语句比较合适呢?
我们发现只要抓住了src="xxxxxx"这个字符串,就能抓出整个src链接,
所以简单的正则语句:src=\"(.+?)\"
完整代码如下:
作者风趣,代码也挺规范,值得学习,后续的就不粘贴了,大家慢慢看
声明:本文内容来源于网络,如有侵权请联系删除