Java爬虫小程序

最近用Java做了一个音乐播放器,实现了在线爬取歌词的功能,在这里总结一下吧。我爬取歌词的网站是http://www.lrcgc.com/。一共需要解析两个网站,所以我分别使用了两个方法。代码中都有十分详细的注释,下面是代码。

package worm;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.swing.JOptionPane;

public class Spider {
	private final static String ENCODE = "utf-8";

	public String getMailsByWeb(String str) throws IOException {//str是你要搜索的歌曲名 可能为中文 所以要转码
		// 1,读取源文件。
		String result = java.net.URLEncoder.encode(str, ENCODE);//网址中文转码
		String u = "http://www.lrcgc.com/so/?q=" + result + "&csrf_token=52e914139a7d26d4";// 合并网址  网址前后部分是固定的 只有中间输入的搜索关键词不同
		URL url = new URL(u);//创建连接
		BufferedReader bufr = new BufferedReader(new InputStreamReader(url.openStream()));//读取数据
		// 2,对读取的数据进行规则的匹配。从中获取符合规则的数据.
		// String mail_regex = "lyric-[0-9]{4}-[0-9]{6}";
		String mail_regex = "lyric-(.*).html";//正则匹配模式串
		//  0) { // 接收
						f.write(bb, 0, len); // 写入文件
					}
					JOptionPane.showMessageDialog(null,"歌词下载完成!");
					f.close();//关闭文件
					in.close();//关闭输入流
				} catch (IOException e) {
					JOptionPane.showMessageDialog(null, "网络连接失败!");
				}
			}
		}.start();
	}
}

如果有疑问,欢迎大家在下方评论!

你可能感兴趣的:(学习之路)