数据,简单爬取html页面的表格中的数据"/>
html 爬数据,简单爬取html页面的表格中的数据
关于爬虫方面本人小白一个,通过无所不能的度娘,从中汲取营养,得到一个简单的能用的例子,在这分享一下,供大家一起汲取.
首先说一下,你想从一个页面中获取到你想要的数据,首先你要先得到这个页面.然后把获取到的页面
使用Jsoup解析成 Document对象 之后进行一系列的操作.文字功底有限,直接上代码:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
public class test {
public static void main(String[] args) throws IOException {
System.out.println("开始");
test d=new test();
String str=d.getHtml();
d.readHtml(str);
System.out.println("结束");
}
//这就是通过url获取整个页面 返回页面的字符串
public String getHtml() throws IOException {
StringBuffer buffer = new StringBuffer();
//连接的url
String urlpath=".html";
URL url = new URL(urlpath);
URLConnection conn = url.openConnection();
InputStream in =conn.getInputStream();
//字节流-》字符流 InputStreamReader
InputStreamReader reader = new InputStreamReader(in,"utf-8");
//按行 读出来
BufferedReader breader = new BufferedReader(reader);
//读取数据
String line = "";
while((line= breader.readLine())!=null)
{
buffer.append(line);
}
return buffer+"";
}
//读取页面的字符串
public void readHtml(String html){
//使用Jsoup解析html 成Document对象
Document document = Jsoup.parse(html);
//获取页面中table 的tr部分
Elements trs=document.select("table").select("tr");
List list=new ArrayList<>();
//输出的位置
File file =new File("d://xxxx.txt");
FileWriter fWriter= null;
if(!file.exists()) {
try {
file.createNewFile();
fWriter= new FileWriter(file);
fWriter.append("日期(北京)\t净持仓量(吨)\t总价值(美元)\t增减(吨)\t影响(金银)\r\n");
for (int i = 1; i < trs.size(); i++) {
Elements tds=trs.get(i).select("td");
Object[]obj={
tds.get(0).text(),
Double.parseDouble(tds.get(1).text()),
Double.parseDouble(tds.get(2).text()),
tds.get(3).text(),
tds.get(4).text()
};
list.add(obj);
String txt = "";
for (int j = 0; j < tds.size(); j++) {
if (txt == "") {
txt = tds.get(j).text();
}else {
txt = txt + "\t"+tds.get(j).text();
}
}
fWriter.append( txt+"\r\n");
fWriter.flush();
}
}catch (IOException e) {
e.printStackTrace();
}finally {
try {
fWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
每天进步一点点,大家共勉
更多推荐
html 爬数据,简单爬取html页面的表格中的数据
发布评论