转:JAVA超级简单的爬虫实例讲解

爬取整个页面的数据,并进行有效的提取信息,注释都有就不废话了:

?

1

2

3

4

5

6

7

8

9

扫描二维码关注公众号,回复: 6193331 查看本文章

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

public class Reptile {

  

 public static void main(String[] args) { 

 String url1="";   //传入你所要爬取的页面地址

 InputStream is=null;  //创建输入流用于读取流

 BufferedReader br=null; //包装流,加快读取速度

 StringBuffer html=new StringBuffer(); //用来保存读取页面的数据.

 String temp=""; //创建临时字符串用于保存每一次读的一行数据,然后html调用append方法写入temp;

 try {

  URL url2 = new URL(url1); //获取URL;

  is = url2.openStream(); //打开流,准备开始读取数据;

  br= new BufferedReader(new InputStreamReader(is)); //将流包装成字符流,调用br.readLine()可以提高读取效率,每次读取一行;

  while ((temp = br.readLine()) != null) {//读取数据,调用br.readLine()方法每次读取一行数据,并赋值给temp,如果没数据则值==null,跳出循环;

  html.append(temp); //将temp的值追加给html,这里注意的时String跟StringBuffere的区别前者不是可变的后者是可变的;

  }

  //System.out.println(html); //打印出爬取页面的全部代码;

  if(is!=null)  //接下来是关闭流,防止资源的浪费;

  {

   is.close();

   is=null;

  }

  Document doc=Jsoup.parse(html.toString()); //通过Jsoup解析页面,生成一个document对象;

  Elements elements=doc.getElementsByClass("XX");//通过class的名字得到(即XX),一个数组对象Elements里面有我们想要的数据,至于这个div的值呢你打开浏览器按下F12就知道了;

  for (Element element:elements) {

   System.out.println(element.text()); //打印出每一个节点的信息;你可以选择性的保留你想要的数据,一般都是获取个固定的索引; 

  }  

 } catch (MalformedURLException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

 } catch (IOException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

 }

  

  

  

}

上一张自己爬取的图片,并用fusioncharts生成报表(一般抓取的是int类型的数据的话,生成报表可以很直观)

以上这篇JAVA超级简单的爬虫实例讲解就是小编分享给大家的全部内容了

猜你喜欢

转载自blog.csdn.net/wdr2003/article/details/89677952
今日推荐