java爬虫mysql_java爬虫中jsoup的使用

jsoup可以用来解析HTML的内容,其功能非常强大,它可以向javascript那样直接从网页中提取有用的信息

例如1:

从html字符串中解析数据

//直接从字符串中获取

public static voidgetParByString()

{

String html= "

这里是字符串内容"+"

这里是 jsoup 作用的相关演示

";

Document doc=Jsoup.parse(html);

Elements links= doc.select("p[class]");for(Element link:links){

String linkclass=link.className();

String linkText=link.text();

System.out.println(linkText);

System.out.println(linkclass);

}

}

从本地文件中解析数据

//从本地文件中获取

public static voidgetHrefByLocal()

{

File input= new File("C:\\Users\\Idea\\Desktop\\html\\Home.html");

Document doc= null;try{

doc= Jsoup.parse(input,"UTF-8","http://www.oschina.net/"); //这里后面加了网址是为了解决后面绝对路径和相对路径的问题

}catch(IOException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

Elements links= doc.select("a[href]");for(Element link:links){

String linkHref= link.attr("href");

String linkText=link.text();

System.out.println(linkText+":"+linkHref);

}

}

直接从网络上解析数据

public staticHashMap getHrefByNet(String url)

{

HashMap hm= newHashMap();

String href= null;try{//这是get方式得到的

Document doc =Jsoup.connect(url).get();

String title=doc.title();

Elements links= doc.select("a[href]");for(Element link:links){

String linkHref= link.attr("abs:href");

String linkText=link.text();//System.out.println(linkText+":"+linkHref);

hm.put(linkText, linkHref);

href=linkText;

}//System.out.println("***************");//另外一种是post方式

/*@SuppressWarnings("unused")

Document doc_Post = Jsoup.connect(url)

.data("query","Java")

.userAgent("I am jsoup")

.cookie("auth","token")

.timeout(10000)

.post();

Elements links_Post = doc.select("a[href]");

for(Element link:links_Post){

String linkHref = link.attr("abs:href");

String linkText = link.text();

//System.out.println(linkText+":"+linkHref);

//map.put(linkText, linkHref);

}*/}catch(IOException e) {//TODO Auto-generated catch block

e.printStackTrace();

hm.put("加载失败", "error");

}returnhm ;

}

注意:需要引用的jar为以下:

import org.jsoup.*;

import org.jsoup.nodes.*;

import org.jsoup.select.Elements;

最后附上jar包下载地址:

循环遍历Hashtable中的键和值

/*创建一个测试的键值对*/Hashtable h= newHashtable();/*往键值对中添加数据*/h.put(key, value);/*然后依次循环取出hashtable中的键和值*/Iterator it=h.entrySet().iterator();while(it.hasNext())

{

Map.Entry m=(Map.Entry)it.next();

System.out.println(m.getValue());

System.out.println(m.getKey());

}

java文件夹的创建(先判断是否存在,如果不存在就创建)

//创建文件夹(如果不存在就创建,存在就不变)

public voidmakedir(){//定义文件夹路径

String filePath = "D://home//Lucy";

File file= newFile(filePath);if(!file.exists()&&!file.isDirectory())

{

System.out.println("不存在");

file.mkdirs();//创建文件夹 注意mkdirs()和mkdir()的区别//判断是否创建成功

if(file.exists()&&file.isDirectory()) //文件夹存在并且是文件夹

{

System.out.println("文件夹创建成功!");

}else{

System.out.println("文件创建不成功!");

}

}else{

System.out.println("文件已经存在!");

}

}

java文件的创建(先判断是否存在,如果不存在就创建)

//创建文件,如果不存在就创建文件

public voidmakeFile()

{

String fileName= "D://file2.txt";

File file= newFile(fileName);if(!file.exists()&&!file.isFile())

{try{if(file.createNewFile()) //创建文件,返回布尔值,如果成功为true,否则为false

{

System.out.println("文件创建成功!");

}

}catch(IOException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}else{

System.out.println("文件已经存在!");

}

}

在文件中写入内容

//往文件中写入文本

public voidwriteText(String s)

{

String fileName= "D://file2.txt";

File file= newFile(fileName);if(file.exists()&&file.isFile()) //如果文件存在,可以写入内容

{

FileOutputStream fos= null;try{

fos= newFileOutputStream(fileName);

}catch(FileNotFoundException e2) {//TODO Auto-generated catch block

e2.printStackTrace();

}try{

fos.write(s.getBytes());

}catch(IOException e1) {//TODO Auto-generated catch block

e1.printStackTrace();

}try{

fos.close();

}catch(IOException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}else{

System.out.println("文件不存在,不能写入内容");

}

}

java获取系统时间:

public static voidgetTime()

{

SimpleDateFormat f= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date= newDate();

System.out.println(f.format(date));

System.out.println(new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒").format(date));

System.out.println(date);

}

java连接mysql数据库

首先添加jar包:下载jar包

public classconnectDoctorMySql {/*public static final String url = "jdbc:mysql://192.168.0.16/hive";

public static final String name = "com.mysql.jdbc.Driver";

public static final String user = "hive";

public static final String password = "hive";

public Connection conn = null;

public PreparedStatement pst = null;

public Statement stmt = null;

ResultSet rs = null;*/

public static final String url = "jdbc:mysql://127.0.0.1/orcl?useUnicode=true&characterEncoding=utf-8&useSSL=false";public static final String name = "com.mysql.jdbc.Driver";public static final String user = "root";public static final String password = "China123";public Connection conn = null;public PreparedStatement pst = null;public Statement stmt = null;

ResultSet rs= null;//初始化数据库

public voidinit(){try{

Class.forName(name);//指定连接类型

conn = DriverManager.getConnection(url, user, password);//获取连接

stmt =conn.createStatement();

}catch(Exception e) {

System.out.println("数据库连接失败. . .");

e.printStackTrace();

}

}//执行sql语句

public voidexcute(String sql){

init();try{int result =stmt.executeUpdate(sql);

}catch(SQLException e) {

System.out.println("数据执行失败:"+sql);//打印sql语句

e.printStackTrace();

}finally{try{if (rs!=null){

rs.close();

}if(pst!=null){

pst.close();

}if(conn!=null) {

conn.close();

}

}catch(SQLException e) {

e.printStackTrace();

}

}

}

//查询语句

public ArrayList select(String sql,int x,inty){

init();

ArrayList result= newArrayList();try{

ResultSet rs=stmt.executeQuery(sql);while(rs.next())

{ String[] str= new String[2];

str[0]=rs.getString(x);

str[1]=rs.getString(y);

result.add(str);

}

}catch(SQLException e) {

e.printStackTrace();

}finally{try{if (rs!=null){

rs.close();

}if(pst!=null){

pst.close();

}if(conn!=null) {

conn.close();

}

}catch(SQLException e) {

e.printStackTrace();

}

}returnresult;

}

java连接oracle数据库

public classconnectDoctor {//连接oracl数据库

public static final String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";//@127.0.0.1

public static final String name = "oracle.jdbc.driver.OracleDriver";public static final String user = "c238891";public static final String password = "Rapid111";public Connection conn = null;public PreparedStatement pst = null;public Statement stmt = null;

ResultSet rs= null;//初始化数据库

public voidinit(){try{

Class.forName(name);//指定连接类型

conn = DriverManager.getConnection(url, user, password);//获取连接

stmt =conn.createStatement();

}catch(Exception e) {

System.out.println("插入数据失败:");

e.printStackTrace();

}

}//测试连接数据库

public voidstart()

{

init();

String sql= "select * from emp";try{

pst=conn.prepareStatement(sql);

rs=pst.executeQuery();while(rs.next()) {

System.out.println("编号:" + rs.getString("empno")+ ";姓名:" + rs.getString("ename")+ "; 工作:" + rs.getString("job")+ "; 领导:" + rs.getString("mgr")+ "; 雇佣日期:" + rs.getString("hiredate")+ "; 工资:" + rs.getString("sal")+ "; 奖金:" + rs.getString("comm")+ "; 部门:" + rs.getString("deptno"));

}

}catch(SQLException e) {

e.printStackTrace();

}finally{try{if (rs!=null){

rs.close();if(pst!=null)

{

pst.close();

}if(conn!=null)

{

conn.close();

}

}

}catch(SQLException e) {

e.printStackTrace();

}

}

}//执行sql语句

public voidexcute(String sql){

init();try{int result =stmt.executeUpdate(sql);

}catch(SQLException e) {

System.out.println(sql);//System.out.println("错误");

e.printStackTrace();

}finally{try{if (rs!=null){

rs.close();

}if(pst!=null){

pst.close();

}if(conn!=null) {

conn.close();

}

}catch(SQLException e) {

e.printStackTrace();

}

}

}//查询语句

public ArrayList select(String sql,int x,inty){

init();

ArrayList result= newArrayList();try{

ResultSet rs=stmt.executeQuery(sql);while(rs.next())

{ String[] str= new String[2];

str[0]=rs.getString(x);

str[1]=rs.getString(y);

result.add(str);

}

}catch(SQLException e) {

e.printStackTrace();

}finally{try{if (rs!=null){

rs.close();

}if(pst!=null){

pst.close();

}if(conn!=null) {

conn.close();

}

}catch(SQLException e) {

e.printStackTrace();

}

}returnresult;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值