主要思路:
1、找到列表页。
2、找到文章页。
3、用一个队列来保存将要爬取的网页,爬取队头的url,如果队列非空,则一直爬取。
4、如果是列表页,则抽取里面所有的文章url进队;如果是文章页,则直接爬取至本地。
一个博客是起始页url是这样的:
http://www.cnblogs.com/joyeecheung/
第n页是这样的:
http://www.cnblogs.com/joyeecheung/default.html?page=n
文章的url是这样的:
http://www.cnblogs.com/joyeecheung/p/[0-9]+.html
代码如下:
public classboke {private Queue data = new LinkedList();//文章页面
String PAGE = "http://www.cnblogs.com/joyeecheung/p/[0-9]+.html";
Pattern p=Pattern.compile(PAGE);public void action(String target) throwsIOException{
Matcher m=p.matcher(target);//如果是文章页面则读取
if(m.find()){
URL url= newURL(target);
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
conn.con