هل تعلم أن هذا هو السبب وراء نجاحك؟
معلومات المنتج
حزمة أدوات الويب؛
import java.io.BufferedReader;
import java.io.IOException;
استيراد java.io.InputStreamReader؛
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
استيراد java.net.URL؛
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
استيراد dbTools.DBTools؛
الطبقة العامة IOTOWeb {
سلسلة عامة getHtmlContent(String htmlURL) {
عنوان URL = فارغ؛
String RowContent = "";
StringBuffer htmlContent = new StringBuffer();
يحاول {
url = URL الجديد(htmlURL);
BufferedReader in = new BufferedReader(new InputStreamReader(url
.openStream()، "gb2312"))؛
بينما ((rowContent = in.readLine()) != null) {
htmlContent.append(rowContent);
}
in. Close();
} التقاط (MalformedURLException e) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
} قبض على (UnsupportedEncodingException e) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
} قبض (IOException ه) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
}
إرجاع htmlContent.toString();
}
القائمة العامة getLink(String htmlContent) {
ArrayList listLink = new ArrayList();
String regex = "<td[^>]*>[//(]*<a[^>]*href=(/"([^/"]*)/"|/'([^/']* )/'|([^//s>]*))[^>]*>(.*?)[//)]*[//s]*</td>";
نمط النمط = Pattern.compile(regex, Pattern.DOTALL);
Matcher matcher = Pattern.matcher(htmlContent);
بينما (matcher.find()) {
listLink.add(matcher.group());
}
رابط قائمة الإرجاع؛
}
القائمة العامة<String> getHref(String htmlContent) {
سلسلة ريكس؛
List listtHref = new ArrayList();
regex = "href=(/"([^/"]*)/"|/'([^/']*)/'|([^//s>]*))/"";
Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
Matcher ma = pa.matcher(htmlContent);
بينما (ma.find()) {
listtHref.add(ma.group().replaceFirst("href=/"", "").replace("/"",
""));
}
قائمة الإرجاع tHref؛
}
القائمة العامة<String> getPerson(String htmlContent) {
سلسلة ريكس؛
قائمة القائمة = قائمة ArrayList الجديدة () ؛
regex = "//(<a[^>]*href=(/"([^/"]*)/"|/'([^/']*)/'|([^//s>] *))[^>]*>(.*?)//)";
Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
Matcher ma = pa.matcher(htmlContent);
بينما (ma.find()) {
list.add(ma.group().replaceFirst("href=/"", "").replace("/"", ""));
}
قائمة العودة؛
}
القائمة العامة<String> getSongName(String htmlContent) {
سلسلة ريكس؛
List listPerson = new ArrayList();
regex = "<a[^>]*href=(/"([^/"]*)/"|/'([^/']*)/'|([^//s>]*)) [^>]*>(.*?)</a>//s";
Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
Matcher ma = pa.matcher(htmlContent);
بينما (ma.find()) {
listPerson.add(ma.group());
}
قائمة الإرجاع للشخص؛
}
سلسلة عامة getMainContent(String htmlContent) {
String regex = "<table width=/"100%/" align=/"center/" cellpadding=/"0/" cellpacing=/"0/" class=/"list/">(.*?)</ الجدول>";
StringBuffer mainContent = new StringBuffer();
نمط النمط = Pattern.compile(regex, Pattern.DOTALL);
Matcher matcher = Pattern.matcher(htmlContent);
بينما (matcher.find()) {
mainContent.append(matcher.group());
}
إرجاع mainContent.toString();
}
علامة السلسلة العامة (السلسلة النهائية) {
return s.replaceAll("<.*?>", "");
}
DBTools dbTools = new DBTools();
الفراغ العام getFromBaiduMap3(String htmlURL) يلقي Throwable {
HashMap htmlContentMap = new HashMap();
String htmlContent = getHtmlContent(htmlURL);
String mainContent = getMainContent(htmlContent);
ListLink = getLink(mainContent);
لـ (int j = 0; j < listLink.size(); j++) {
String tdTag = listLink.get(j).toString();
قائمة أغنيةNameList = getSongName(tdTag);
String SongName = outTag(songNameList.get(0).toString());
List personList = getPerson(tdTag);
سلسلة أغنية الشخص = "";
إذا (personList.size() != 0) {
for (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());
List hrefList = getHref(songNameList.get(0).toString());
String SongHref = hrefList.get(0).toString();
System.out.println();
String sql = "أدخل في قيم الأغنية (songName,songPerson,songHref)(?,?,?)";
ArrayList list_values = new ArrayList();
list_values.add(songName);
list_values.add(songPerson);
list_values.add(songHref);
dbTools.update(sql, list_values);
}
}
}
تعليمات استخدام DBTools:
معلومات المنتج
حزمة dbTools؛
import java.util.ArrayList;
استيراد java.sql.*;
أدوات DBTools للفئة العامة {
بيان مُعد خاص مُعد ؛
مجموعة النتائج الخاصة resultSet؛
اتصال اتصال خاص؛
أدوات DBTools العامة () {
يحاول {
Class.forName("com.mysql.jdbc.Driver");
} التقاط (ClassNotFoundException e) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
}
يحاول {
اتصال = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/TestURL"، "root"، "zhuyi");
} قبض على (SQLException ه) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
}
}
استعلام ArrayList العام (String sql، ArrayList list_values) يطرح Throwable {
ArrayList listRows = new ArrayList();
PrepareStatement = Connection.prepareStatement(sql);
لـ (int i = 0; i < list_values.size(); i++) {
PreparationStatement.setObject(i + 1, list_values.get(i));
}
resultSet = PreparationStatement.executeQuery();
بينما (resultSet.next()) {
String[]rowinfo = سلسلة جديدة[resultSet.getMetaData()
.getColumnCount()];
لـ (int i = 0; i <rowinfo.length; i++) {
Rowinfo[i] = resultSet.getString(i + 1);
}
listRows.add(rowinfo);
}
صفوف قائمة الإرجاع؛
}
تحديث باطل عام (String sql، ArrayList list_values) يلقي Throwable {
PrepareStatement = Connection.prepareStatement(sql);
لـ (int i = 0; i < list_values.size(); i++) {
PreparationStatement.setObject(i + 1, list_values.get(i));
}
PreparedStatement.executeUpdate();
PreparedStatement.Close();
}
}
Servlet:
معلومات المنتج
وحدة تحكم الحزمة؛
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import webTools.IOTOWeb;
الطبقة العامة TestURL تمتد HttpServlet {
/**
* منشئ الكائن.
*/
اختبار URL العام () {
ممتاز()؛
}
/**
* تدمير servlet. <ر>
*/
تدمير الفراغ العام () {
super.destroy(); // فقط ضع سلسلة "تدمير" في السجل
// ضع الكود الخاص بك هنا
}
/**
* طريقة doGet للخادم. <ر>
*
* يتم استدعاء هذه الطريقة عندما يكون للنموذج طريقة قيمة العلامة الخاصة به تساوي get.
*
* @ طلب المعلمة
* الطلب الذي يرسله العميل إلى الخادم
* استجابة المعلمة
* الرد الذي يرسله الخادم للعميل
* @throws ServletException
* إذا حدث خطأ
* @ يلقي IOException
* إذا حدث خطأ
*/
doGet الفراغ العام (طلب HttpServletRequest، استجابة HttpServletResponse)
يلقي ServletException، IOException {
يحاول {
IOTOWeb iotoWeb = new IOTOWeb();
iotoWeb.getFromBaiduMap3("http://list.mp3.baidu.com/topso/mp3topsong.html?id=1?top2");
} قبض (قابل للرمي) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
}
}
/**
* طريقة doPost للخادم. <ر>
*
* يتم استدعاء هذه الطريقة عندما تكون قيمة العلامة الخاصة بالنموذج مساوية لـ
* بريد.
*
* @ طلب المعلمة
* الطلب الذي يرسله العميل إلى الخادم
* استجابة المعلمة
* الرد الذي يرسله الخادم للعميل
* @throws ServletException
* إذا حدث خطأ
* @ يلقي IOException
* إذا حدث خطأ
*/
doPost باطلة عامة (طلب HttpServletRequest، استجابة HttpServletResponse)
يلقي ServletException، IOException {
Response.setContentType("text/html");
PrintWriter out = Response.getWriter();
خارج
.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">");
println("<HTML>");
out.println("<HEAD><TITLE>Servlet</TITLE></HEAD>");
println("<BODY>");
out.print("هذا هو");
print(this.getClass());
out.println("، باستخدام طريقة POST");
println("</BODY>");
out.println("</HTML>");
out.flush();
out.Close();
}
/**
* تهيئة servlet. <ر>
*
* @throws ServletException
* في حالة حدوث خطأ
*/
init الفراغ العام () يلقي ServletException {
// ضع الكود الخاص بك هنا
}
}
اسم المنتج:
معلومات المنتج
حزمة أدوات الويب؛
import java.io.BufferedReader;
استيراد java.io.InputStreamReader؛
استيراد java.net.URL؛
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
استيراد dbTools.DBTools؛
الطبقة العامة GetBook {
السلسلة العامة getHtmlContent(String htmlURL) تطرح Throwable {
عنوان URL = فارغ؛
String RowContent = "";
StringBuffer htmlContent = new StringBuffer();
url = URL الجديد(htmlURL);
BufferedReader in = new BufferedReader(new InputStreamReader(url
.openStream()، "gb2312"))؛
بينما ((rowContent = in.readLine()) != null) {
htmlContent.append(rowContent);
}
in. Close();
إرجاع htmlContent.toString();
}
سلسلة getBookName العامة (سلسلة htmlContent) {
String bookName = "";
String regex = "<span class=/"style15/">[^>]*</span>";
نمط النمط = Pattern.compile(regex, Pattern.DOTALL);
Matcher matcher = Pattern.matcher(htmlContent);
إذا (matcher.find()) {
bookName = matcher.group();
}
إرجاع اسم الكتاب؛
}
علامة السلسلة العامة (السلسلة النهائية) {
return s.replaceAll("<.*?>", "");
}
DBTools dbtools = new DBTools();
getFromJINSHU الفراغ العام (String htmlURL) يلقي Throwable {
String htmlContent = getHtmlContent(htmlURL);
String bookName = outTag(getBookName(htmlContent));
إذا (bookName != null && !"".equals(bookName)) {
System.out.println(bookName);
String sql = "أدخل في قيم bookinfo(bookName)(؟)";
ArrayList list_values = new ArrayList();
list_values.add(bookName);
dbtools.update(sql, list_values);
}
}
}
الخدمة:
معلومات المنتج
وحدة تحكم الحزمة؛
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
استيراد webTools.GetBook؛
يمتد كتاب الاختبار العام إلى HttpServlet {
/**
* منشئ الكائن.
*/
كتاب الاختبار العام () {
ممتاز()؛
}
/**
* تدمير servlet. <ر>
*/
تدمير الفراغ العام () {
super.destroy(); // فقط ضع سلسلة "تدمير" في السجل
// ضع الكود الخاص بك هنا
}
/**
* طريقة doGet للخادم. <ر>
*
* يتم استدعاء هذه الطريقة عندما يكون للنموذج طريقة قيمة العلامة الخاصة به تساوي get.
*
* @ طلب المعلمة
* الطلب الذي يرسله العميل إلى الخادم
* استجابة المعلمة
* الرد الذي يرسله الخادم للعميل
* @throws ServletException
* إذا حدث خطأ
* @ يلقي IOException
* إذا حدث خطأ
*/
كثافة العمليات ط = 1؛
doGet الفراغ العام (طلب HttpServletRequest، استجابة HttpServletResponse)
يلقي ServletException، IOException {
GetBook bookinfo = new GetBook();
لـ (؛ i < 10000؛ i++) {
سلسلة bookURL = "http://www.golden-book.com/booksinfo/12/" + i
+ ".html"؛
يحاول {
bookinfo.getFromJINSHU(bookURL);
} قبض (قابل للرمي) {
أنا++;
doPost(request, Response);
}
}
}
/**
* طريقة doPost للخادم. <ر>
*
* يتم استدعاء هذه الطريقة عندما تكون قيمة العلامة الخاصة بالنموذج مساوية لـ
* بريد.
*
* @ طلب المعلمة
* الطلب الذي يرسله العميل إلى الخادم
* استجابة المعلمة
* الرد الذي يرسله الخادم للعميل
* @throws ServletException
* إذا حدث خطأ
* @ يلقي IOException
* إذا حدث خطأ
*/
doPost باطلة عامة (طلب HttpServletRequest، استجابة HttpServletResponse)
يلقي ServletException، IOException {
GetBook bookinfo = new GetBook();
لـ (؛ i < 10000؛ i++) {
سلسلة bookURL = "http://www.golden-book.com/booksinfo/12/" + i
+ ".html"؛
يحاول {
bookinfo.getFromJINSHU(bookURL);
} قبض (قابل للرمي) {
أنا++;
doGet(request, Response);
}
}
}
/**
* تهيئة servlet. <ر>
*
* @throws ServletException
* في حالة حدوث خطأ
*/
init الفراغ العام () يلقي ServletException {
// ضع الكود الخاص بك هنا
}
}
يمكن أن تكون هذه هي المرة الأولى التي تكتشف فيها هذه المشكلة.