发布于 2016-07-05 14:34:16 | 60 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的Java函数式编程,程序狗速度看过来!

Java程序设计语言

java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。


抓取各大网站的数据插入数据库,这样就不用为没有数据而烦恼了
获取百度的歌曲名,歌手和链接!!
 
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 = "\\(<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 
} 
} 

每种功能的实现方法有很多,希望各位可以交流不同的思想和方法。可以加QQ412546724。呵呵


相关阅读 :
Java获取网络文件并插入数据库的代码
Windows中使用Java生成Excel文件并插入图片的方法
Java实现把excel xls中数据转为可直接插入数据库的sql文件
java获取网络类型的方法
详解Java获取环境变量及系统属性的方法
java实现文本文件删除空行的示例分享
java读取excel文件并复制(copy)文件到指定目录示例
java断点续传功能实例(java获取远程文件)
java 获取项目文件路径实现方法
java实现大文件分割与合并的实例代码
JAVA实现将磁盘中所有空文件夹进行删除的代码
Java简单从文件读取和输出的实例
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务