第一次数据抓取

package com.edu.test;


import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.*;
import java.util.Scanner;


import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;




/**
 * 烟大数据抓取并保存
 * @author Administrator
 *
 */
public class YandaDataSave {


public static Scanner in=new Scanner(System.in);
public static final String url="http://computer.ytu.edu.cn/news/jsj.php?c=article&a=type&tid=50";
public static final int timeout=10000;

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//第一步进入数据抓取平台
System.out.println("欢迎进入数据查询平台");


//1.抓去a标签数据 2.抓去图片数据 3.抓去标题数据
//是否继续(y/n)
//如果选y弹出选项1.抓去a标签数据 2.抓去图片数据 3.抓去标题数据
//如果选n,退到1.登录 2.退出
login();
}

/**
* 登录操作
*/
public static void login() {
//1.登录 2.退出
System.out.print("1.登录\t2.退出");
int code=in.nextInt();
switch (code) {
case 1:
//登录
//选择操作
choose();
break;


case 2:
//退出
System.out.println("谢谢使用,再见");
break;
}
}

/**
* 选择操作
*/
public static void choose() {
String y="y";
do{
System.out.println("请选择要抓取得数据类型");
System.out.print("1.超链接数据\t2.图片数据  \t3.标题数据  \t4.文本内容  \t5.保存新闻内容");
int code=in.nextInt();
switch (code) {
case 1:
//抓取a标签数据
Ahandler();
break;
case 2:
//抓取图片
Imghandler();
break;
case 3:
//抓取标题
Titlehandler();
break;
case 4:
//抓取内容
MainWrite();
case 5:
NewsReader();
}
System.out.print("是否继续(y/n)");
y=in.next();
} while(y.equals("y"));
login();
}

/**
* 抓取a标签
*/
public static void Ahandler() {
try {

System.out.println("正在读取信息...");
//通过字符流写入数据
FileWriter fw=new FileWriter("E:/jsoup/a.txt");
Document document=Jsoup.connect(url).timeout(timeout).get();
Elements eles=document.getElementsByTag("a");
String allhref="";
for(int i=0;i Element e=eles.get(i);
String href=e.attr("abs:href");
allhref+=href+"\r\n";
}
fw.write(allhref);
fw.flush();
fw.close();
System.out.println("保存a标签成功");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/**
* 抓取标题
*/
public static void Titlehandler() {
try {
System.out.println("正在读取信息...");
//通过字符流写入数据
FileWriter fw=new FileWriter("E:/jsoup/title.txt");
Document document=Jsoup.connect(url).timeout(timeout).get();
Elements eles=document.getElementsByTag("");
String allhref="";
for(int i=0;i Element e=eles.get(i);
//获取文本内容
String href=e.html();
allhref+=href+"\r\n";
}
fw.write(allhref);
fw.flush();
fw.close();
System.out.println("保存标题成功");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/**
* 抓取图片
*/
public static void Imghandler() {
try {
System.out.println("正在读取信息...");
//通过字符流写入数据
Document document=Jsoup.connect(url).timeout(timeout).get();
Elements eles=document.getElementsByTag("img");
for(int i=0;i Element e=eles.get(i);
//获取文本内容
String src=e.attr("abs:src");
//保存图片
URL url=new URL(src);
URLConnection contection=url.openConnection();
//得到下载的图片流
InputStream is=contection.getInputStream();
//获取后缀名
           String imageName = src.substring(src.lastIndexOf("/") + 1,src.length());
FileOutputStream fos=new FileOutputStream("E:/jsoup/"+imageName);
byte[] b=new byte[is.available()];
while(is.read(b)!=-1) {
fos.write(b);
}
fos.flush();
fos.close();
is.close();
}
System.out.println("保存图片成功");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**

*/
public static void MainWrite(){
try {
System.out.println("正在读取信息...");
FileWriter fw=new FileWriter("E:/jsoup/1.txt");
Document document=Jsoup.connect(url).timeout(timeout).get();
String str=document.text();
fw.write(str);
fw.flush();
fw.close();
System.out.println("文本内容保存成功");
           
       } catch (IOException e) {
           System.out.println("Error" + e);
       }
}
//保存新闻内容
public static void NewsReader(){
System.out.println("正在读取信息...");
try {
for(int i=0;i<17;i++){
String url1="http://computer.ytu.edu.cn/news/jsj.php?c=article&a=type&tid=50&page=%i";
Document document=Jsoup.connect(url1).timeout(timeout).get();
String str=document.html();
str = str.substring(str.indexOf("
  • "), str.indexOf("
      ")).replaceAll("
    ", "");
            String[] strArray = str.split("
  • ");
    for (String s : strArray) {
    if (s.length() > 0){
                    s = s.replaceAll("
  • ", "").replaceAll("\r\n", "");
                   String x=new String(s.substring(s.indexOf("["), s.indexOf("]") + "]".length()) + s.substring(s.lastIndexOf(">") + ">".length(), s.length())).trim();
                   FileWriter out1 = new FileWriter("E:/jsoup/"+x+".txt");
                x=new String("http://computer.ytu.edu.cn"+s.substring(s.indexOf("                    Document document1=Jsoup.connect(x).timeout(timeout).get();
                       String str1 = document1.text();
                       str1=str1.substring(str1.indexOf("点击:")+"点击:".length(),str1.indexOf("上一篇:")).replaceAll(" ", "");
                       out1.write(str1);
                       out1.flush();
                       out1.close();
    }
            }
    }
    System.out.println("文章保存成功");
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }

    你可能感兴趣的:(java)