获取百度的歌曲名,歌手和链接!!
复制代码代码如下:
แพ็คเกจเว็บเครื่องมือ;
นำเข้า java.io.BufferedReader;
นำเข้า java.io.IOException;
นำเข้า java.io.InputStreamReader;
นำเข้า java.io.UnsupportedEncodingException;
นำเข้า java.net.MalformedURLException;
นำเข้า java.net.URL;
นำเข้า java.util.ArrayList;
นำเข้า java.util.HashMap;
นำเข้า java.util.List;
นำเข้า java.util.regex.Matcher;
นำเข้า java.util.regex.Pattern;
นำเข้า dbTools.DBTools;
IOTOWeb คลาสสาธารณะ {
สตริงสาธารณะ getHtmlContent (สตริง htmlURL) {
URL URL = null;
สตริง rowContent = "";
StringBuffer htmlContent = StringBuffer ใหม่ ();
พยายาม {
url = URL ใหม่ (htmlURL);
BufferedReader ใน = BufferedReader ใหม่ (InputStreamReader ใหม่ (url
.openStream(), "gb2312");
ในขณะที่ ((rowContent = in.readLine()) != null) {
htmlContent.append(แถวเนื้อหา);
-
ใน.ปิด();
} จับ (MurformedURLException e) {
// TODO บล็อก catch ที่สร้างขึ้นอัตโนมัติ
e.printStackTrace();
} จับ (UnsupportedEncodingException e) {
// TODO บล็อก catch ที่สร้างขึ้นอัตโนมัติ
e.printStackTrace();
} จับ (IOException จ) {
// TODO บล็อก catch ที่สร้างขึ้นอัตโนมัติ
e.printStackTrace();
-
กลับ htmlContent.toString();
-
รายการสาธารณะ getLink (สตริง htmlContent) {
ArrayList listLink = ใหม่ ArrayList();
สตริง regex = "<td[^>]*>[//(]*<a[^>]*href=(/"([^/"]*)/"|/'([^/']* )/'|([^//s>]*))[^>]*>(.*?)[//)]*[//s]*</td>";
Pattern pattern = Pattern.compile (regex, Pattern.DOTALL);
Matcher matcher = pattern.matcher(htmlเนื้อหา);
ในขณะที่ (matcher.find()) {
listLink.add(matcher.group());
-
กลับรายการลิงค์;
-
รายการสาธารณะ getHref (สตริง htmlContent) {
สตริง regex;
รายการ listtHref = ใหม่ ArrayList();
regex = "href=(/"([^/"]*)/"|/'([^/']*)/'|([^//s>]*))/"";
รูปแบบ pa = Pattern.compile (regex, Pattern.DOTALL);
Matcher ma = pa.matcher(htmlเนื้อหา);
ในขณะที่ (ma.find()) {
listtHref.add(ma.group().replaceFirst("href=/"", "").replace("/"",
-
-
กลับ listtHref;
-
รายการสาธารณะ getPerson (สตริง htmlContent) {
สตริง regex;
รายการ รายการ = ใหม่ ArrayList();
regex = "//(<a[^>]*href=(/"([^/"]*)/"|/'([^/']*)/'|([^//s>] *))[^>]*>(.*?)//)";
รูปแบบ pa = Pattern.compile (regex, Pattern.DOTALL);
Matcher ma = pa.matcher(htmlเนื้อหา);
ในขณะที่ (ma.find()) {
list.add(ma.group().replaceFirst("href=/"", "").replace("/"", ""));
-
รายการส่งคืน;
-
รายการสาธารณะ getSongName (สตริง htmlContent) {
สตริง regex;
รายการ listPerson = ใหม่ ArrayList();
regex = "<a[^>]*href=(/"([^/"]*)/"|/'([^/']*)/'|([^//s>]*)) [^>]*>(.*?)</a>//s";
รูปแบบ pa = Pattern.compile (regex, Pattern.DOTALL);
Matcher ma = pa.matcher(htmlเนื้อหา);
ในขณะที่ (ma.find()) {
listPerson.add(ma.group());
-
รายชื่อผู้ส่งคืน;
-
สตริงสาธารณะ getMainContent (สตริง htmlContent) {
สตริง regex = "<table width=/"100%/" align=/"center/" cellpadding=/"0/" cellspacing=/"0/" class=/"list/">(.*?)</ ตาราง>";
StringBuffer mainContent = ใหม่ StringBuffer();
Pattern pattern = Pattern.compile (regex, Pattern.DOTALL);
Matcher matcher = pattern.matcher(htmlเนื้อหา);
ในขณะที่ (matcher.find()) {
mainContent.append(matcher.group());
-
กลับ mainContent.toString();
-
สาธารณะ String outTag (สตริงสุดท้าย) {
กลับ s.replaceAll("<.*?>", "");
-
DBTools dbTools = DBTools ใหม่();
โมฆะสาธารณะ getFromBaiduMap3 (สตริง htmlURL) พ่น Throwable {
HashMap htmlContentMap = HashMap ใหม่();
สตริง htmlContent = getHtmlContent(htmlURL);
สตริง mainContent = getMainContent(htmlContent);
รายการ listLink = getLink (เนื้อหาหลัก);
สำหรับ (int j = 0; j < listLink.size(); j++) {
สตริง tdTag = listLink.get(j).toString();
รายการ songNameList = getSongName(tdTag);
สตริง songName = outTag(songNameList.get(0).toString());
รายการ personList = getPerson(tdTag);
สตริง songPerson = "";
ถ้า (personList.size() != 0) {
สำหรับ (int n = 0; n < personList.size(); n++) {
// System.out.println(personList.get(n).toString());
songPerson = outTag(personList.get(n).toString());
-
} อื่น {
songPerson = "无";
-
// System.out.print(songNameList.get(0).toString());
รายการ hrefList = getHref(songNameList.get(0).toString());
สตริง songHref = hrefList.get(0).toString();
System.out.println();
String sql = "ใส่ค่าเพลง(songName,songPerson,songHref)(?,?,?)";
ArrayList list_values = ใหม่ ArrayList();
list_values.add(ชื่อเพลง);
list_values.add (นักแต่งเพลง);
list_values.add(songHref);
dbTools.update(sql, list_values);
-
-
-
ฐานข้อมูล DBTools:
复制代码代码如下:
แพ็คเกจ dbTools;
นำเข้า java.util.ArrayList;
นำเข้า java.sql.*;
DBTools คลาสสาธารณะ {
คำสั่งเตรียมส่วนตัวที่เตรียมไว้;
ชุดผลลัพธ์ ResultSet ส่วนตัว;
การเชื่อมต่อการเชื่อมต่อส่วนตัว
DBTools สาธารณะ () {
พยายาม {
Class.forName("com.mysql.jdbc.Driver");
} จับ (ClassNotFoundException จ) {
// TODO บล็อก catch ที่สร้างขึ้นอัตโนมัติ
e.printStackTrace();
-
พยายาม {
การเชื่อมต่อ = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/TestURL", "root", "zhuyi");
} จับ (SQLException e) {
// TODO บล็อก catch ที่สร้างขึ้นอัตโนมัติ
e.printStackTrace();
-
-
แบบสอบถาม ArrayList สาธารณะ (สตริง sql, ArrayList list_values) พ่น Throwable {
ArrayList listRows = ใหม่ ArrayList();
readyStatement = การเชื่อมต่อ.prepareStatement(sql);
สำหรับ (int i = 0; i < list_values.size(); i++) {
readyStatement.setObject(i + 1, list_values.get(i));
-
resultSet = readyStatement.executeQuery();
ในขณะที่ (resultSet.next()) {
สตริง [] rowinfo = สตริงใหม่ [resultSet.getMetaData()
.getColumnCount()];
สำหรับ (int i = 0; i < rowinfo.length; i++) {
rowinfo[i] = resultSet.getString(i + 1);
-
listRows.add(ข้อมูลแถว);
-
กลับรายการแถว;
-
การอัปเดตโมฆะสาธารณะ (String sql, ArrayList list_values) พ่น Throwable {
readyStatement = การเชื่อมต่อ.prepareStatement(sql);
สำหรับ (int i = 0; i < list_values.size(); i++) {
readyStatement.setObject(i + 1, list_values.get(i));
-
readyStatement.executeUpdate();
เตรียมงบ.ปิด();
-
-
เซิร์ฟเล็ต调用:
复制代码代码如下:
ตัวควบคุมแพ็คเกจ
นำเข้า java.io.IOException;
นำเข้า java.io.PrintWriter;
นำเข้า java.util.List;
นำเข้า javax.servlet.ServletException;
นำเข้า javax.servlet.http.HttpServlet;
นำเข้า javax.servlet.http.HttpServletRequest;
นำเข้า javax.servlet.http.HttpServletResponse;
นำเข้า webTools.IOTOWeb;
TestURL คลาสสาธารณะขยาย HttpServlet {
-
* ตัวสร้างวัตถุ
-
TestURL สาธารณะ () {
ซุปเปอร์();
-
-
* การทำลายเซิร์ฟเล็ต <br>
-
โมฆะสาธารณะทำลาย () {
ซุปเปอร์.ทำลาย(); // เพียงใส่สตริง "destroy" ลงในบันทึก
// ใส่รหัสของคุณที่นี่
-
-
* วิธี doGet ของเซิร์ฟเล็ต <br>
-
* วิธีการนี้เรียกว่าเมื่อแบบฟอร์มมีค่าแท็กวิธีเท่ากับรับ
-
* คำขอ @param
* คำขอที่ลูกค้าส่งไปยังเซิร์ฟเวอร์
* ตอบกลับ @param
* การตอบสนองที่เซิร์ฟเวอร์ส่งไปยังไคลเอนต์
* @ พ่น ServletException
* หากมีข้อผิดพลาดเกิดขึ้น
* @ พ่น IOException
* หากมีข้อผิดพลาดเกิดขึ้น
-
โมฆะสาธารณะ doGet (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่น ServletException, IOException {
พยายาม {
IOTOWeb iotoWeb = IOTOWeb ใหม่();
iotoWeb.getFromBaiduMap3("http://list.mp3.baidu.com/topso/mp3topsong.html?id=1?top2");
} จับ (โยนได้ e) {
// TODO บล็อก catch ที่สร้างขึ้นอัตโนมัติ
e.printStackTrace();
-
-
-
* วิธี doPost ของเซิร์ฟเล็ต <br>
-
* วิธีการนี้เรียกว่าเมื่อแบบฟอร์มมีค่าแท็กเท่ากับ
* โพสต์.
-
* คำขอ @param
* คำขอที่ลูกค้าส่งไปยังเซิร์ฟเวอร์
* ตอบกลับ @param
* การตอบสนองที่เซิร์ฟเวอร์ส่งไปยังไคลเอนต์
* @ พ่น ServletException
* หากมีข้อผิดพลาดเกิดขึ้น
* @ พ่น IOException
* หากมีข้อผิดพลาดเกิดขึ้น
-
โมฆะสาธารณะ doPost (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่น ServletException, IOException {
response.setContentType("ข้อความ/html");
PrintWriter ออก = response.getWriter();
ออก
.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>เซิร์ฟเล็ต</TITLE></HEAD>");
out.println(" <BODY>");
out.print("นี่คือ");
out.print(this.getClass());
out.println(", ใช้วิธี POST");
out.println(" </BODY>");
out.println("</HTML>");
ออก.ล้าง();
ออก.ปิด();
-
-
* การเริ่มต้นของเซิร์ฟเล็ต <br>
-
* @พ่น ServletException
* หากมีข้อผิดพลาดเกิดขึ้น
-
โมฆะสาธารณะ init() พ่น ServletException {
// ใส่รหัสของคุณที่นี่
-
-
获取金书网的书名:
复制代码代码如下:
แพ็คเกจเว็บเครื่องมือ;
นำเข้า java.io.BufferedReader;
นำเข้า java.io.InputStreamReader;
นำเข้า java.net.URL;
นำเข้า java.util.ArrayList;
นำเข้า java.util.List;
นำเข้า java.util.regex.Matcher;
นำเข้า java.util.regex.Pattern;
นำเข้า dbTools.DBTools;
GetBook คลาสสาธารณะ {
สตริงสาธารณะ getHtmlContent (สตริง htmlURL) พ่น Throwable {
URL URL = null;
สตริง rowContent = "";
StringBuffer htmlContent = ใหม่ StringBuffer();
url = URL ใหม่ (htmlURL);
BufferedReader ใน = BufferedReader ใหม่ (InputStreamReader ใหม่ (url
.openStream(), "gb2312");
ในขณะที่ ((rowContent = in.readLine()) != null) {
htmlContent.append(แถวเนื้อหา);
-
ใน.ปิด();
กลับ htmlContent.toString();
-
สตริงสาธารณะ getBookName (สตริง htmlContent) {
สตริง bookName = "";
สตริง regex = "<span class=/"style15/">[^>]*</span>";
Pattern pattern = Pattern.compile (regex, Pattern.DOTALL);
Matcher matcher = pattern.matcher(htmlเนื้อหา);
ถ้า (matcher.find()) {
ชื่อหนังสือ = matcher.group();
-
ชื่อหนังสือคืน;
-
สาธารณะ String outTag (สตริงสุดท้าย) {
กลับ s.replaceAll("<.*?>", "");
-
DBTools dbtools = DBTools ใหม่();
โมฆะสาธารณะ getFromJINSHU (สตริง htmlURL) พ่น Throwable {
สตริง htmlContent = getHtmlContent(htmlURL);
สตริง bookName = outTag(getBookName(htmlContent));
ถ้า (ชื่อหนังสือ != null && !"".เท่ากับ(ชื่อหนังสือ)) {
System.out.println (ชื่อหนังสือ);
String sql = "ใส่ลงใน bookinfo(bookName) ค่า (?)";
ArrayList list_values = ใหม่ ArrayList();
list_values.add(ชื่อหนังสือ);
dbtools.update(sql, list_values);
-
-
-
เซิร์ฟเล็ต:
复制代码代码如下:
ตัวควบคุมแพ็คเกจ
นำเข้า java.io.IOException;
นำเข้า java.io.PrintWriter;
นำเข้า javax.servlet.ServletException;
นำเข้า javax.servlet.http.HttpServlet;
นำเข้า javax.servlet.http.HttpServletRequest;
นำเข้า javax.servlet.http.HttpServletResponse;
นำเข้า webTools.GetBook;
TestBook ระดับสาธารณะขยาย HttpServlet {
-
* ตัวสร้างวัตถุ
-
หนังสือทดสอบสาธารณะ () {
ซุปเปอร์();
-
-
* การทำลายเซิร์ฟเล็ต <br>
-
โมฆะสาธารณะทำลาย () {
ซุปเปอร์.ทำลาย(); // เพียงใส่สตริง "destroy" ลงในบันทึก
// ใส่รหัสของคุณที่นี่
-
-
* วิธี doGet ของเซิร์ฟเล็ต <br>
-
* วิธีการนี้เรียกว่าเมื่อแบบฟอร์มมีค่าแท็กวิธีเท่ากับรับ
-
* คำขอ @param
* คำขอที่ลูกค้าส่งไปยังเซิร์ฟเวอร์
* ตอบกลับ @param
* การตอบสนองที่เซิร์ฟเวอร์ส่งไปยังไคลเอนต์
* @พ่น ServletException
* หากมีข้อผิดพลาดเกิดขึ้น
* @ พ่น IOException
* หากมีข้อผิดพลาดเกิดขึ้น
-
อินท์ i = 1;
โมฆะสาธารณะ doGet (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่น ServletException, IOException {
ข้อมูลการจอง GetBook = GetBook ใหม่ ();
สำหรับ (; ฉัน < 10,000; i++) {
สตริง bookURL = "http://www.golden-book.com/booksinfo/12/" + i
+ ".html";
พยายาม {
bookinfo.getFromJINSHU(bookURL);
} จับ (โยนได้ e) {
ฉัน++;
doPost(คำขอ, ตอบกลับ);
-
-
-
-
* วิธี doPost ของเซิร์ฟเล็ต <br>
-
* วิธีการนี้เรียกว่าเมื่อแบบฟอร์มมีค่าแท็กเท่ากับ
* โพสต์.
-
* คำขอ @param
* คำขอที่ลูกค้าส่งไปยังเซิร์ฟเวอร์
* ตอบกลับ @param
* การตอบสนองที่เซิร์ฟเวอร์ส่งไปยังไคลเอนต์
* @ พ่น ServletException
* หากมีข้อผิดพลาดเกิดขึ้น
* @พ่น IOException
* หากมีข้อผิดพลาดเกิดขึ้น
-
โมฆะสาธารณะ doPost (คำขอ HttpServletRequest, การตอบสนอง HttpServletResponse)
พ่น ServletException, IOException {
ข้อมูลการจอง GetBook = GetBook ใหม่ ();
สำหรับ (; ฉัน < 10,000; i++) {
สตริง bookURL = "http://www.golden-book.com/booksinfo/12/" + i
+ ".html";
พยายาม {
bookinfo.getFromJINSHU(bookURL);
} จับ (โยนได้ e) {
ฉัน++;
doGet (คำขอ, การตอบสนอง);
-
-
-
-
* การเริ่มต้นของเซิร์ฟเล็ต <br>
-
* @พ่น ServletException
* หากมีข้อผิดพลาดเกิดขึ้น
-
โมฆะสาธารณะ init() พ่น ServletException {
// ใส่รหัสของคุณที่นี่
-
-
每种功能的实现方法有很多,希望各位可以交流不同的思想和方法。可以加QQ412546724。呵呵