Java获取网络文件并插入数据库

Java获取网络文件并插入数据库,第1张

抓取各大网站的数据插入数据库 这样就不用为没有数据而烦恼了

获取百度的歌曲名 歌手和链接!!

package webTools

import java io BufferedReader

import java io IOException

import java io InputStreamReader

import java io UnsupportedEncodingException

import MalformedURLException

import 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 URL) {

URL url = null

String rowContent =

StringBuffer Content = new StringBuffer()

try {

url = new URL(URL)

BufferedReader in = new BufferedReader(new InputStreamReader(url

openStream() gb ))

while ((rowContent = in readLine()) != null) {

Content 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 Content toString()

}

public List getLink(String Content) {

ArrayList listLink = new ArrayList()

String regex = <td[^>]*>[\\(]*<a[^>]*href=(\ ([^\ ]*)\ |\ ([^\ ]*)\ |([^\\s>]*))[^>]*>( *?)[\\)]*[\\s]*</td>

Pattern pattern = pile(regex Pattern DOTALL)

Matcher matcher = pattern matcher(Content)

while (matcher find()) {

listLink add(matcher group())

}

return listLink

}

public List<String>getHref(String Content) {

String regex

List listtHref = new ArrayList()

regex = href=(\ ([^\ ]*)\ |\ ([^\ ]*)\ |([^\\s>]*))\

Pattern pa = pile(regex Pattern DOTALL)

Matcher ma = pa matcher(Content)

while (ma find()) {

listtHref add(ma group() replaceFirst( href=\ ) replace( \

))

}

return listtHref

}

public List<String>getPerson(String Content) {

String regex

List list = new ArrayList()

regex = ]*href=(\"([^\"]*)\"|\ ([^\ ]*)\ |([^\\s>]*))[^>]*>( *?)\\ >\\(<a[^>]*href=(\ ([^\ ]*)\ |\ ([^\ ]*)\ |([^\\s>]*))[^>]*>( *?)\\)

Pattern pa = pile(regex Pattern DOTALL)

Matcher ma = pa matcher(Content)

while (ma find()) {

list add(ma group() replaceFirst( href=\ ) replace( \ ))

}

return list

}

public List<String>getSongName(String Content) {

String regex

List listPerson = new ArrayList()

regex = <a[^>]*href=(\ ([^\ ]*)\ |\ ([^\ ]*)\ |([^\\s>]*))[^>]*>( *?)</a>\\s

Pattern pa = pile(regex Pattern DOTALL)

Matcher ma = pa matcher(Content)

while (ma find()) {

listPerson add(ma group())

}

return listPerson

}

public String getMainContent(String Content) {

String regex = <table width=\ %\ align=\ center\ cellpadding=\ \ cellspacing=\ \ class=\ list\ >( *?)</table>

StringBuffer mainContent = new StringBuffer()

Pattern pattern = pile(regex Pattern DOTALL)

Matcher matcher = pattern matcher(Content)

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 getFromBaiduMap (String URL) throws Throwable {

HashMap ContentMap = new HashMap()

String Content = getHtmlContent(URL)

String mainContent = getMainContent(Content)

List listLink = getLink(mainContent)

for (int j = j <listLink size()j++) {

String tdTag = listLink get(j) toString()

List songNameList = getSongName(tdTag)

String songName = outTag(songNameList get( ) toString())

List personList = getPerson(tdTag)

String songPerson =

if (personList size() != ) {

for (int n = n <personList size()n++) {

// System out println(personList get(n) toString())

songPerson = outTag(personList get(n) toString())

}

} else {

songPerson = 无

}

// System out print(songNameList get( ) toString())

List hrefList = getHref(songNameList get( ) toString())

String songHref = hrefList get( ) 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( mysql jdbc Driver )

} catch (ClassNotFoundException e) {

// TODO Auto generated catch block

e printStackTrace()

}

try {

connection = DriverManager getConnection(

jdbc:mysql://localhost: /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 = i <list_values size()i++) {

preparedStatement setObject(i + list_values get(i))

}

resultSet = preparedStatement executeQuery()

while (resultSet next()) {

String[] rowinfo = new String[resultSet getMetaData()

getColumnCount()]

for (int i = i <rowinfo lengthi++) {

rowinfo[i] = resultSet getString(i + )

}

listRows add(rowinfo)

}

return listRows

}

public void update(String sql ArrayList list_values) throws Throwable {

preparedStatement = connection prepareStatement(sql)

for (int i = i <list_values size()i++) {

preparedStatement setObject(i + 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 HttpServlet

import javax servlet HttpServletRequest

import javax servlet 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 getFromBaiduMap ( ?id= ?top )

} 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/ )

PrintWriter out = response getWriter()

out

println( <!DOCTYPE HTML PUBLIC \ //W C//DTD HTML 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 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 URL) throws Throwable {

URL url = null

String rowContent =

StringBuffer Content = new StringBuffer()

url = new URL(URL)

BufferedReader in = new BufferedReader(new InputStreamReader(url

openStream() gb ))

while ((rowContent = in readLine()) != null) {

Content append(rowContent)

}

in close()

return Content toString()

}

public String getBookName(String Content) {

String bookName =

String regex = <span class=\ style \ >[^>]*</span>

Pattern pattern = pile(regex Pattern DOTALL)

Matcher matcher = pattern matcher(Content)

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 URL) throws Throwable {

String Content = getHtmlContent(URL)

String bookName = outTag(getBookName(Content))

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 HttpServlet

import javax servlet HttpServletRequest

import javax servlet 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 =

public void doGet(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException {

GetBook bookinfo = new GetBook()

for (i <i++) {

String bookURL = /booksinfo/ / + i

+ l

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 <i++) {

String bookURL = /booksinfo/ / + i

+ l

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

}

}

lishixinzhi/Article/program/Java/hx/201311/25707

就要链接数据库,可以通过JDBC链接。

首先,在连接数据库之前必须保证SQL Server 2012是采用SQL Server身份验证方式而不是windows身份验证方式,开始如下配置:

一、因为SQL Server 2012装好后,默认协议是没有开启的,所以要打开SQL Server配置管理器中开启。

1、安装好SQL Server 2012后,运行 开始 → 所有程序 → Microsoft SQL Server 2012 → 配置工具 →SQL Server配置管理器

2、在左边栏找到 SQL Server网络配置选项,点开它的小箭头,会看到“【你的数据库名】的协议” (图中是ERIC2012的协议),选中它,看右边栏。

(1)如果Named Pipes 未启用,则右键→启用

(2)右键单击 TCP/IP,选择 启用

(3)双击TCP/IP(右键→属性),在d出的窗口中选择 “IP地址” 选项卡,将IP1和IP10的【IP地址】设为127.0.0.1,并将所有【IPx】的【已启用】设为是。接着,拖动下拉条到最下方,将 IPAll 中的【TCP端口】设成 【1433】,其余不变。

3、重新启动计算机。

4、接下来使用telnet命令测试1433端口是否打开。首先要保证telnet服务开启。

5、完成上一步后。开始菜单 → 运行cmd → 输入:telnet 127.0.0.1 1433,(注意telnet与127之间有空格,1与1433之间有空格)。

6、若提示“不能打开到主机的连接,在端口 1433: 连接失败”,则说明1433端口没有打开,需要重新进行以上配置。

1:首先写一个方法是接收数据后保存至数据库的方法,但是添加进去的数据需要进行标识(主要考虑到如果数据量较大,在保存的过程中可能有新的数据进来会产生多条数据,所以需要数据标识);

2:当点击按钮时d出标识的数据,记录ID号;

3:将修改后的数据根据ID号保存更新至数据库中并取消该数据的标识;


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9976518.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存