亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java獲取網絡文件并插入數據庫的代碼

2019-11-26 16:19:12
字體:
來源:轉載
供稿:網友
獲取百度的歌曲名,歌手和鏈接??!
復制代碼 代碼如下:

package webTools;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import 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;
import dbTools.DBTools;
public class IOTOWeb {
public String getHtmlContent(String htmlURL) {
URL url = null;
String rowContent = "";
StringBuffer htmlContent = new StringBuffer();
try {
url = new URL(htmlURL);
BufferedReader in = new BufferedReader(new InputStreamReader(url
.openStream(), "gb2312"));
while ((rowContent = in.readLine()) != null) {
htmlContent.append(rowContent);
}
in.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return htmlContent.toString();
}
public List getLink(String htmlContent) {
ArrayList listLink = new ArrayList();
String regex = "<td[^>]*>[//(]*<a[^>]*href=(/"([^/"]*)/"|/'([^/']*)/'|([^//s>]*))[^>]*>(.*?)[//)]*[//s]*</td>";
Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
Matcher matcher = pattern.matcher(htmlContent);
while (matcher.find()) {
listLink.add(matcher.group());
}
return listLink;
}
public List<String> getHref(String htmlContent) {
String regex;
List listtHref = new ArrayList();
regex = "href=(/"([^/"]*)/"|/'([^/']*)/'|([^//s>]*))/"";
Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
Matcher ma = pa.matcher(htmlContent);
while (ma.find()) {
listtHref.add(ma.group().replaceFirst("href=/"", "").replace("/"",
""));
}
return listtHref;
}
public List<String> getPerson(String htmlContent) {
String regex;
List list = new ArrayList();
regex = "http://(<a[^>]*href=(/"([^/"]*)/"|/'([^/']*)/'|([^//s>]*))[^>]*>(.*?)//)";
Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
Matcher ma = pa.matcher(htmlContent);
while (ma.find()) {
list.add(ma.group().replaceFirst("href=/"", "").replace("/"", ""));
}
return list;
}
public List<String> getSongName(String htmlContent) {
String regex;
List listPerson = new ArrayList();
regex = "<a[^>]*href=(/"([^/"]*)/"|/'([^/']*)/'|([^//s>]*))[^>]*>(.*?)</a>//s";
Pattern pa = Pattern.compile(regex, Pattern.DOTALL);
Matcher ma = pa.matcher(htmlContent);
while (ma.find()) {
listPerson.add(ma.group());
}
return listPerson;
}
public String getMainContent(String htmlContent) {
String regex = "<table width=/"100%/" align=/"center/" cellpadding=/"0/" cellspacing=/"0/" class=/"list/">(.*?)</table>";
StringBuffer mainContent = new StringBuffer();
Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
Matcher matcher = pattern.matcher(htmlContent);
while (matcher.find()) {
mainContent.append(matcher.group());
}
return mainContent.toString();
}
public String outTag(final String s) {
return s.replaceAll("<.*?>", "");
}
DBTools dbTools = new DBTools();
public void getFromBaiduMap3(String htmlURL) throws Throwable {
HashMap htmlContentMap = new HashMap();
String htmlContent = getHtmlContent(htmlURL);
String mainContent = getMainContent(htmlContent);
List listLink = getLink(mainContent);
for (int j = 0; j < listLink.size(); j++) {
String tdTag = listLink.get(j).toString();
List songNameList = getSongName(tdTag);
String songName = outTag(songNameList.get(0).toString());
List personList = getPerson(tdTag);
String songPerson = "";
if (personList.size() != 0) {
for (int n = 0; n < personList.size(); n++) {
// System.out.println(personList.get(n).toString());
songPerson = outTag(personList.get(n).toString());
}
} else {
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 = "insert into song(songName,songPerson,songHref) values(?,?,?)";
ArrayList list_values = new ArrayList();
list_values.add(songName);
list_values.add(songPerson);
list_values.add(songHref);
dbTools.update(sql, list_values);
}
}
}

DBTools數據庫鏈接類:
復制代碼 代碼如下:

package dbTools;
import java.util.ArrayList;
import java.sql.*;
public class DBTools {
private PreparedStatement preparedStatement;
private ResultSet resultSet;
private Connection connection;
public DBTools() {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/TestURL", "root", "zhuyi");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public ArrayList query(String sql, ArrayList list_values) throws Throwable {
ArrayList listRows = new ArrayList();
preparedStatement = connection.prepareStatement(sql);
for (int i = 0; i < list_values.size(); i++) {
preparedStatement.setObject(i + 1, list_values.get(i));
}
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
String[] rowinfo = new String[resultSet.getMetaData()
.getColumnCount()];
for (int i = 0; i < rowinfo.length; i++) {
rowinfo[i] = resultSet.getString(i + 1);
}
listRows.add(rowinfo);
}
return listRows;
}
public void update(String sql, ArrayList list_values) throws Throwable {
preparedStatement = connection.prepareStatement(sql);
for (int i = 0; i < list_values.size(); i++) {
preparedStatement.setObject(i + 1, list_values.get(i));
}
preparedStatement.executeUpdate();
preparedStatement.close();
}
}

Servlet調用:
復制代碼 代碼如下:

package controller;
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;
public class TestURL extends HttpServlet {
/**
* Constructor of the object.
*/
public TestURL() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
IOTOWeb iotoWeb = new IOTOWeb();
iotoWeb.getFromBaiduMap3("http://list.mp3.baidu.com/topso/mp3topsong.html?id=1?top2");
} catch (Throwable e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to
* post.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException
* if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}

獲取金書網的圖書名:
復制代碼 代碼如下:

package webTools;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import dbTools.DBTools;
public class GetBook {
public String getHtmlContent(String htmlURL) throws Throwable {
URL url = null;
String rowContent = "";
StringBuffer htmlContent = new StringBuffer();
url = new URL(htmlURL);
BufferedReader in = new BufferedReader(new InputStreamReader(url
.openStream(), "gb2312"));
while ((rowContent = in.readLine()) != null) {
htmlContent.append(rowContent);
}
in.close();
return htmlContent.toString();
}
public String getBookName(String htmlContent) {
String bookName = "";
String regex = "<span class=/"style15/">[^>]*</span>";
Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
Matcher matcher = pattern.matcher(htmlContent);
if (matcher.find()) {
bookName = matcher.group();
}
return bookName;
}
public String outTag(final String s) {
return s.replaceAll("<.*?>", "");
}
DBTools dbtools = new DBTools();
public void getFromJINSHU(String htmlURL) throws Throwable {
String htmlContent = getHtmlContent(htmlURL);
String bookName = outTag(getBookName(htmlContent));
if (bookName != null && !"".equals(bookName)) {
System.out.println(bookName);
String sql = "insert into bookinfo(bookName) values(?)";
ArrayList list_values = new ArrayList();
list_values.add(bookName);
dbtools.update(sql, list_values);
}
}
}

調用Servlet:
復制代碼 代碼如下:

package controller;
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;
import webTools.GetBook;
public class TestBook extends HttpServlet {
/**
* Constructor of the object.
*/
public TestBook() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
int i = 1;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
GetBook bookinfo = new GetBook();
for (; i < 10000; i++) {
String bookURL = "http://www.golden-book.com/booksinfo/12/" + i
+ ".html";
try {
bookinfo.getFromJINSHU(bookURL);
} catch (Throwable e) {
i++;
doPost(request, response);
}
}
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to
* post.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
GetBook bookinfo = new GetBook();
for (; i < 10000; i++) {
String bookURL = "http://www.golden-book.com/booksinfo/12/" + i
+ ".html";
try {
bookinfo.getFromJINSHU(bookURL);
} catch (Throwable e) {
i++;
doGet(request, response);
}
}
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException
* if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}

每種功能的實現方法有很多,希望各位可以交流不同的思想和方法??梢约観Q412546724。呵呵
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一级片久久久久久久| 精品在线欧美视频| 欧美性生交大片免网| 亚洲精选在线观看| 精品一区二区三区四区在线| xvideos亚洲| 成人黄色在线播放| 国产精品国语对白| 91九色单男在线观看| 亚洲第五色综合网| 国产精品一区二区久久国产| 国产欧美亚洲精品| 91在线中文字幕| 精品国产区一区二区三区在线观看| 国产成人亚洲综合91| 国产精品亚洲视频在线观看| 中文字幕日韩视频| 一区二区亚洲精品国产| 中文字幕久精品免费视频| 日韩国产中文字幕| 欧美成人午夜激情在线| 亚洲综合中文字幕在线观看| 精品久久久国产| 中文一区二区视频| 富二代精品短视频| 中文字幕自拍vr一区二区三区| 亚洲性猛交xxxxwww| 97欧美精品一区二区三区| 日产日韩在线亚洲欧美| 亚洲综合中文字幕68页| 国产精品户外野外| 久久在线观看视频| 欧美巨大黑人极品精男| 亚洲国产成人久久综合一区| 久久久久国色av免费观看性色| 国产精品久久久久久久久久ktv| 国模精品一区二区三区色天香| 国产精品电影在线观看| 久久综合伊人77777尤物| 欧美成人小视频| 中文字幕国内精品| 国内成人精品视频| 亚洲成色777777在线观看影院| 国产精品wwww| 91精品国产高清自在线| 成人h视频在线观看播放| 亚洲美女av网站| 亚洲国产精品人人爽夜夜爽| 欧美色xxxx| 国产综合在线视频| 国产精品普通话| 亚洲精品suv精品一区二区| 欧美日韩另类字幕中文| 国产成人精品综合久久久| 国产精品日韩在线| 日韩免费不卡av| 91色精品视频在线| 欧美激情视频播放| 欧美成人免费在线视频| 中文字幕欧美国内| 国产精品video| 欧美美女操人视频| 欧美日韩久久久久| 中文字幕不卡在线视频极品| 国产精品美乳在线观看| 精品中文字幕在线| 日韩中文字幕国产| 国产日韩亚洲欧美| 国产成人亚洲综合青青| 国产激情久久久| 精品日韩视频在线观看| 日韩一区在线视频| 91成人性视频| 欧美亚洲国产视频| 亚洲国产成人在线播放| 久久99热这里只有精品国产| 美女999久久久精品视频| 日韩视频中文字幕| 久久青草精品视频免费观看| 亚洲综合日韩在线| 国产亚洲精品久久久优势| 中文字幕日韩有码| 欧美韩国理论所午夜片917电影| 国产日本欧美一区二区三区| 影音先锋欧美精品| 欧美成人四级hd版| 欧美重口另类videos人妖| 日韩美女视频中文字幕| 亚洲毛片在线观看.| 亚洲高清av在线| 欧美中文在线观看国产| 久热精品视频在线观看一区| 欧美最近摘花xxxx摘花| 中文字幕日韩精品有码视频| 日韩在线观看免费全| 国产欧美精品一区二区三区介绍| 日韩有码在线视频| 成人动漫网站在线观看| 色伦专区97中文字幕| 亚洲天堂第二页| 欧美性猛交xxxx| 国产精品大片wwwwww| 久久精品国产电影| 久久久精品中文字幕| 亚洲综合视频1区| 精品国产乱码久久久久酒店| 国产在线观看精品一区二区三区| 日韩欧美中文第一页| 日韩视频免费在线观看| 国产亚洲精品久久久久动| 国产脚交av在线一区二区| 国产精品老女人视频| 正在播放欧美一区| 欧美一区二区三区免费视| 91精品国产成人www| 久久精品电影网| 亚洲精品免费av| 精品久久久久久国产91| 日韩精品中文字幕在线观看| 欧美成人黄色小视频| 久久99精品国产99久久6尤物| 黑人巨大精品欧美一区免费视频| 韩国日本不卡在线| 动漫精品一区二区| 2021久久精品国产99国产精品| 国产一区二区三区直播精品电影| 久久精品国产久精国产思思| 日韩av影片在线观看| 欧美激情aaaa| 亚洲精品欧美日韩专区| 亚洲欧美日韩直播| 8x海外华人永久免费日韩内陆视频| 97国产真实伦对白精彩视频8| 亚洲第一福利网| 热久久免费视频精品| 欧美性猛xxx| 日韩在线观看视频免费| 国产九九精品视频| 日韩电影免费在线观看| 久久久999国产| 中文国产成人精品久久一| 亚洲最新在线视频| 7m第一福利500精品视频| 日韩亚洲国产中文字幕| 国产精自产拍久久久久久| 亚洲国产精品久久久久秋霞不卡| 国产精品久久久91| 亚洲激情成人网| 精品一区二区三区四区在线| 日韩精品在线视频美女| 欧美色视频日本高清在线观看| 欧美日韩国产在线看| 成人精品在线视频| 日韩av在线电影网| 欧美一区二区影院| 亚洲欧美国产日韩天堂区| 精品国产91久久久久久| 91精品久久久久久久久| 国产精品久久久久77777| 人人澡人人澡人人看欧美| 欧美一区二区三区精品电影| 国产精品尤物福利片在线观看| 成人中文字幕在线观看| 国产成人欧美在线观看|