获取百度的歌曲名,歌手和链接!!
复制代码代码如下:
paket alat web;
impor java.io.BufferedReader;
impor java.io.IOException;
impor java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
impor java.net.MalformedURLException;
impor java.net.URL;
impor java.util.ArrayList;
impor java.util.HashMap;
impor java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
impor dbTools.DBTools;
kelas publik IOTOWeb {
String publik getHtmlContent(String htmlURL) {
URL url = nol;
String barisIsi = "";
StringBuffer htmlKonten = StringBuffer baru();
mencoba {
url = URL baru(htmlURL);
BufferedReader di = BufferedReader baru(InputStreamReader baru(url
.openStream(), "gb2312"));
while ((rowContent = in.readLine()) != null) {
htmlContent.append(rowContent);
}
melampirkan();
} tangkapan (MalformedURLException e) {
// TODO Blok tangkapan yang dibuat secara otomatis
e.printStackTrace();
} tangkapan (Tidak DidukungEncodingException e) {
// TODO Blok tangkapan yang dibuat secara otomatis
e.printStackTrace();
} tangkapan (IOException e) {
// TODO Blok tangkapan yang dibuat secara otomatis
e.printStackTrace();
}
kembalikan htmlContent.toString();
}
Daftar publik getLink(String htmlContent) {
Daftar ArrayListLink = ArrayList baru();
String regex = "<td[^>]*>[//(]*<a[^>]*href=(/"([^/"]*)/"|/'([^/']* )/'|([^//s>]*))[^>]*>(.*?)[//)]*[//s]*</td>";
Pola pola = Pattern.compile(regex, Pattern.DOTALL);
Pencocokan pencocok = pattern.matcher(htmlContent);
while (pencocokan.temukan()) {
listLink.add(matcher.group());
}
kembalikan daftar Tautan;
}
Daftar publik<String> getHref(String htmlContent) {
String reguler;
Daftar listtHref = new ArrayList();
ekspresi reguler = "href=(/"([^/"]*)/"|/'([^/']*)/'|([^//s>]*))/"";
Pola pa = Pola.kompilasi(regex, Pola.DOTALL);
Pencocokan ma = pa.matcher(htmlKonten);
while (ma.find()) {
listtHref.add(ma.group().replaceFirst("href=/"", "").replace("/"",
""));
}
kembalikan daftartHref;
}
Daftar publik<String> getPerson(String htmlContent) {
String reguler;
Daftar daftar = new ArrayList();
ekspresi reguler = "//(<a[^>]*href=(/"([^/"]*)/"|/'([^/']*)/'|([^//s>] *))[^>]*>(.*?)//)";
Pola pa = Pola.kompilasi(regex, Pola.DOTALL);
Pencocokan ma = pa.matcher(htmlKonten);
while (ma.find()) {
list.add(ma.group().replaceFirst("href=/"", "").replace("/"", ""));
}
daftar pengembalian;
}
Daftar publik<String> getSongName(String htmlContent) {
String reguler;
Daftar listPerson = new ArrayList();
ekspresi reguler = "<a[^>]*href=(/"([^/"]*)/"|/'([^/']*)/'|([^//s>]*)) [^>]*>(.*?)</a>//s";
Pola pa = Pola.kompilasi(regex, Pola.DOTALL);
Pencocokan ma = pa.matcher(htmlKonten);
while (ma.find()) {
listPerson.add(ma.group());
}
kembalikan daftarOrang;
}
String publik getMainContent(String htmlKonten) {
String regex = "<lebar tabel=/"100%/" align=/"center/" cellpadding=/"0/" Cellspacing=/"0/" class=/"list/">(.*?)</ tabel>";
StringBuffer mainContent = StringBuffer baru();
Pola pola = Pattern.compile(regex, Pattern.DOTALL);
Pencocokan pencocok = pattern.matcher(htmlContent);
while (pencocokan.temukan()) {
mainContent.append(matcher.group());
}
kembalikan mainContent.toString();
}
String keluarTag publik(String akhir s) {
return s.replaceAll("<.*?>", "");
}
DBTools dbTools = DBTools baru();
public void getFromBaiduMap3(String htmlURL) melempar Throwable {
HashMap htmlContentMap = HashMap baru();
String htmlKonten = getHtmlKonten(htmlURL);
String mainContent = getMainContent(htmlKonten);
Daftar listLink = getLink(mainContent);
untuk (int j = 0; j < listLink.size(); j++) {
String tdTag = listLink.get(j).toString();
Daftar songNameList = getSongName(tdTag);
String nama lagu = outTag(songNameList.get(0).toString());
Daftar personList = getPerson(tdTag);
String laguPerson = "";
jika (orangDaftar.ukuran() != 0) {
untuk (int n = 0; n < personList.size(); n++) {
// Sistem.keluar.println(personList.get(n).toString());
songPerson = outTag(personList.get(n).toString());
}
} kalau tidak {
songPerson = "无";
}
// Sistem.keluar.cetak(songNameList.get(0).toString());
Daftar hrefList = getHref(songNameList.get(0).toString());
String laguHref = hrefList.get(0).toString();
Sistem.keluar.println();
String sql = "masukkan ke nilai lagu(songName,songPerson,songHref)(?,?,?)";
Daftar Array list_values = Daftar Array baru();
list_values.add(Nama Lagu);
list_values.add(songPerson);
list_values.add(songHref);
dbTools.update(sql, list_values);
}
}
}
Fitur DBTools:
复制代码代码如下:
paket dbTools;
impor java.util.ArrayList;
impor java.sql.*;
DBTools kelas publik {
Pernyataan Siap Disiapkan pribadi;
kumpulan hasil pribadi;
koneksi Koneksi pribadi;
Alat DB publik() {
mencoba {
Kelas.forName("com.mysql.jdbc.Driver");
} tangkapan (ClassNotFoundException e) {
// TODO Blok tangkapan yang dibuat secara otomatis
e.printStackTrace();
}
mencoba {
koneksi = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/TestURL", "root", "zhuyi");
} tangkapan (SQLException e) {
// TODO Blok tangkapan yang dibuat secara otomatis
e.printStackTrace();
}
}
kueri ArrayList publik (String sql, nilai_daftar ArrayList) melempar Throwable {
Daftar ArrayListRows = ArrayList baru();
readyStatement = koneksi.prepareStatement(sql);
untuk (int i = 0; i < daftar_nilai.ukuran(); i++) {
readyStatement.setObject(i + 1, list_values.get(i));
}
resultSet = readyStatement.executeQuery();
while (resultSet.next()) {
String[] rowinfo = String baru[resultSet.getMetaData()
.getColumnCount()];
for (int i = 0; i < barisinfo.panjang; i++) {
rowinfo[i] = resultSet.getString(i + 1);
}
listRows.add(barisinfo);
}
kembalikan daftarBaris;
}
pembaruan kekosongan publik (String sql, ArrayList list_values) melempar Throwable {
readyStatement = koneksi.prepareStatement(sql);
untuk (int i = 0; i < daftar_nilai.ukuran(); i++) {
readyStatement.setObject(i + 1, list_values.get(i));
}
readyStatement.executeUpdate();
pernyataan siap.close();
}
}
Layanan Servlet:
复制代码代码如下:
pengontrol paket;
impor java.io.IOException;
impor java.io.PrintWriter;
impor java.util.List;
impor javax.servlet.ServletException;
impor javax.servlet.http.HttpServlet;
impor javax.servlet.http.HttpServletRequest;
impor javax.servlet.http.HttpServletResponse;
impor webTools.IOTOWeb;
kelas publik TestURL memperluas HttpServlet {
/**
* Konstruktor objek.
*/
URL Tes publik() {
super();
}
/**
* Penghancuran servlet. <br>
*/
kehancuran publik void() {
super.hancurkan(); // Cukup masukkan string "hancurkan" ke dalam log
// Letakkan kodemu di sini
}
/**
* Metode doGet dari servlet. <br>
*
* Metode ini dipanggil ketika suatu formulir memiliki nilai tag yang sama dengan metode get.
*
* @permintaan param
* permintaan dikirim oleh klien ke server
* @param tanggapan
* respon yang dikirim oleh server ke klien
* @melempar ServletException
* jika terjadi kesalahan
* @melempar IOException
* jika terjadi kesalahan
*/
public void doGet (permintaan HttpServletRequest, respons HttpServletResponse)
melempar ServletException, IOException {
mencoba {
IOTOWeb iotoWeb = IOTOWeb baru();
iotoWeb.getFromBaiduMap3("http://list.mp3.baidu.com/topso/mp3topsong.html?id=1?top2");
} catch (Dapat dilempar e) {
// TODO Blok tangkapan yang dibuat secara otomatis
e.printStackTrace();
}
}
/**
* Metode doPost dari servlet. <br>
*
* Metode ini dipanggil ketika suatu formulir memiliki nilai tag metode yang sama dengan
* pos.
*
* @permintaan param
* permintaan dikirim oleh klien ke server
* @param tanggapan
* respon yang dikirim oleh server ke klien
* @melempar ServletException
* jika terjadi kesalahan
* @melempar IOException
* jika terjadi kesalahan
*/
public void doPost (permintaan HttpServletRequest, respons HttpServletResponse)
melempar ServletException, IOException {
respon.setContentType("teks/html");
PrintWriter keluar = respon.getWriter();
keluar
.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transisi//EN/">");
keluar.println("<HTML>");
out.println(" <HEAD><TITLE>Servlet</TITLE></HEAD>");
keluar.println(" <BODY>");
out.print("Ini");
keluar.cetak(ini.getClass());
out.println(", menggunakan metode POST");
keluar.println(" </BODY>");
keluar.println("</HTML>");
keluar.flush();
keluar.tutup();
}
/**
* Inisialisasi servlet. <br>
*
* @melempar ServletException
* jika terjadi kesalahan
*/
public void init() melempar ServletException {
// Letakkan kodemu di sini
}
}
获取金书网的图书名:
复制代码代码如下:
paket alat web;
impor java.io.BufferedReader;
impor java.io.InputStreamReader;
impor java.net.URL;
impor java.util.ArrayList;
impor java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
impor dbTools.DBTools;
GetBook kelas publik {
public String getHtmlContent(String htmlURL) melempar Throwable {
URL url = nol;
String barisIsi = "";
StringBuffer htmlKonten = StringBuffer baru();
url = URL baru(htmlURL);
BufferedReader di = BufferedReader baru(InputStreamReader baru(url
.openStream(), "gb2312"));
while ((rowContent = in.readLine()) != null) {
htmlContent.append(rowContent);
}
melampirkan();
kembalikan htmlContent.toString();
}
String publik getBookName(String htmlKonten) {
String Nama Buku = "";
String regex = "<span class=/"style15/">[^>]*</span>";
Pola pola = Pattern.compile(regex, Pattern.DOTALL);
Pencocokan pencocok = pattern.matcher(htmlContent);
if (pencocokan.temukan()) {
bookName = matcher.group();
}
kembalikan Nama Buku;
}
String keluarTag publik(String akhir s) {
return s.replaceAll("<.*?>", "");
}
DBTools dbtools = DBTools baru();
public void getFromJINSHU(String htmlURL) melempar Throwable {
String htmlKonten = getHtmlKonten(htmlURL);
String bookName = outTag(getBookName(htmlKonten));
if (Nama Buku != null && !"".sama dengan(Nama Buku)) {
System.out.println(Namabuku);
String sql = "masukkan ke nilai bookinfo(Namabuku)(?)";
Daftar Array list_values = Daftar Array baru();
list_values.add(Namabuku);
dbtools.update(sql, list_values);
}
}
}
Fungsi Servlet:
复制代码代码如下:
pengontrol paket;
impor java.io.IOException;
impor java.io.PrintWriter;
impor javax.servlet.ServletException;
impor javax.servlet.http.HttpServlet;
impor javax.servlet.http.HttpServletRequest;
impor javax.servlet.http.HttpServletResponse;
impor webTools.GetBook;
Buku Tes kelas publik memperluas HttpServlet {
/**
* Konstruktor objek.
*/
Buku Tes publik() {
super();
}
/**
* Penghancuran servlet. <br>
*/
kehancuran publik void() {
super.hancurkan(); // Masukkan saja string "hancurkan" ke dalam log
// Letakkan kodemu di sini
}
/**
* Metode doGet dari servlet. <br>
*
* Metode ini dipanggil ketika suatu formulir memiliki nilai tag yang sama dengan metode get.
*
* @permintaan param
* permintaan dikirim oleh klien ke server
* @param tanggapan
* respon yang dikirim oleh server ke klien
* @melempar ServletException
* jika terjadi kesalahan
* @melempar IOException
* jika terjadi kesalahan
*/
ke dalam saya = 1;
public void doGet (permintaan HttpServletRequest, respons HttpServletResponse)
melempar ServletException, IOException {
GetBook bookinfo = GetBook baru();
untuk (; saya < 10000; saya++) {
String bookURL = "http://www.golden-book.com/booksinfo/12/" + i
+ ".html";
mencoba {
bookinfo.getFromJINSHU(bookURL);
} catch (Dapat dilempar e) {
saya++;
doPost(permintaan, tanggapan);
}
}
}
/**
* Metode doPost dari servlet. <br>
*
* Metode ini dipanggil ketika suatu formulir memiliki nilai tag metode yang sama dengan
* pos.
*
* @permintaan param
* permintaan dikirim oleh klien ke server
* @param tanggapan
* respon yang dikirim oleh server ke klien
* @melempar ServletException
* jika terjadi kesalahan
* @melempar IOException
* jika terjadi kesalahan
*/
public void doPost (permintaan HttpServletRequest, respons HttpServletResponse)
melempar ServletException, IOException {
GetBook bookinfo = GetBook baru();
untuk (; saya < 10000; saya++) {
String bookURL = "http://www.golden-book.com/booksinfo/12/" + i
+ ".html";
mencoba {
bookinfo.getFromJINSHU(bookURL);
} catch (Dapat dilempar e) {
saya++;
doGet(permintaan, tanggapan);
}
}
}
/**
* Inisialisasi servlet. <br>
*
* @melempar ServletException
* jika terjadi kesalahan
*/
public void init() melempar ServletException {
// Letakkan kodemu di sini
}
}
QQ412546724。呵呵