音乐爬虫实例暂时不能使用,酷狗音乐好像做了反爬我将更新程序再上传
网络上有很多爬虫框架结构也多种多样但是基本结构就3个1下载器,2解析器,3处理器(基本所有爬虫都是在这个结构上扩展的)。
所以不论是用其他人的爬虫框架还是自己的爬虫只要理解这3个结构就能很好的使用爬虫或开发爬虫。
我用的是SeimiCrawler爬虫框架
简单实例
添加maven依赖(已经同步到中央maven库):
1 2 3 4 5 | < dependency > < groupId >cn.wanghaomiao</ groupId > < artifactId >SeimiCrawler</ artifactId > < version >0.1.0</ version > </ dependency > |
在包crawlers
下添加爬虫规则,例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | @Crawler (name = "basic" ) public class Basic extends BaseSeimiCrawler { @Override public String[] startUrls() { return new String[]{ "http://www.cnblogs.com/" }; } @Override public void start(Response response) { JXDocument doc = response.document(); try { List<Object> urls = doc.sel( "//a[@class='titlelnk']/@href" ); logger.info( "{}" , urls.size()); for (Object s:urls){ push( new Request(s.toString(), "getTitle" )); } } catch (Exception e) { e.printStackTrace(); } } public void getTitle(Response response){ JXDocument doc = response.document(); try { logger.info( "url:{} {}" , response.getUrl(), doc.sel( "//h1[@class='postTitle']/a/text()|//a[@id='cb_post_title_url']/text()" )); //do something } catch (Exception e) { e.printStackTrace(); } } } |
然后随便某个包下添加启动Main函数,启动SeimiCrawler:
1 2 3 4 5 6 | public class Boot { public static void main(String[] args){ Seimi s = new Seimi(); s.start( "basic" ); } } |
2实现图片爬虫和音乐爬虫
1找到要爬取数据的页面及地址加入startUrls方法
以上方法是下载对应urls文件
xpath解析xml(html)文件(各位可以看下http://www.w3school.com.cn/xpath/index.asp)了解下xpath解析文件规则。
上面 xpath解析表示获取所有超链接地址
获取所有下级页面中图片的地址(音乐。数据都一个原则)
下载图片方法
这样就完成了图片爬虫和音乐爬虫
运行这2个类中main方法即可爬取图片和音乐
数据爬虫
运行结果图片
数据库结果
代码片段
爬取苏宁易购商城页面代码
插入数据库代码
以下是我爬虫的代码地址
https://download.csdn.net/download/u010740917/10908313
,不懂的可以看代码
此致:敬礼,感谢各位网友的阅读。