基于java的图片爬虫和音乐爬虫
网络上有很多爬虫框架结构也多种多样但是基本结构就3个1下载器,2解析器,3处理器(基本所有爬虫都是在这个结构上扩展的)。所以不论是用其他人的爬虫框架还是自己的爬虫只要理解这3个结构就能很好的使用爬虫或开发爬虫。
1.以下用的是SeimiCrawler爬虫框架
简单实例
添加maven依赖(已经同步到中央maven库):
<dependency>
<groupId>cn.wanghaomiao</groupId>
<artifactId>SeimiCrawler</artifactId>
<version>0.1.0</version>
</dependency>
在包crawlers下添加爬虫规则,例如:
@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:
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.****.net/download/u010740917/10908313