一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - jsoup如何爬取圖片到本地

jsoup如何爬取圖片到本地

2021-03-29 10:06殤丨恨 Java教程

這篇文章主要為大家詳細介紹了jsoup如何爬取圖片到本地,jsoup爬取網站信息,具有一定的參考價值,感興趣的小伙伴們可以參考一下

因為項目需求,需要車輛品牌信息和車系信息,昨天用一天時間研究了jsoup爬取網站信息。項目是用maven+spring+springmvc+mybatis寫的。

jsoup開發指南地址

這個是需要爬取網站的地址 https://car.autohome.com.cn/zhaoche/pinpai/

1.首先在pom.xml中添加依賴

因為需要把圖片保存到本地所以又添加了commons-net包

?
1
2
3
4
5
6
7
8
9
10
11
12
<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
    <dependency>
      <groupid>org.jsoup</groupid>
      <artifactid>jsoup</artifactid>
      <version>1.10.3</version>
    </dependency>
<!-- https://mvnrepository.com/artifact/commons-net/commons-net -->
    <dependency>
      <groupid>commons-net</groupid>
      <artifactid>commons-net</artifactid>
      <version>3.3</version>
    </dependency>

2.爬蟲代碼的實現

?
1
2
3
4
5
6
7
8
9
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
@controller
@requestmapping("/car/")
public class carcontroller {
  //圖片保存路徑
  private static final string saveimgpath="c://imgs";
  /**
  * @title: insert 品牌名稱 和圖片爬取和添加
  * @description:
  * @param @throws ioexception 
  * @return void 
  * @throws
  * @date 2018年1月29日 下午4:42:57
  */
  @requestmapping("add")
  public void insert() throws ioexception {
    //定義想要爬取數據的地址
    string url = "https://car.autohome.com.cn/zhaoche/pinpai/";
    //獲取網頁文本
    document doc = jsoup.connect(url).get();
    //根據類名獲取文本內容
    elements elementsbyclass = doc.getelementsbyclass("uibox-con");
    //遍歷類的集合
    for (element element : elementsbyclass) {
      //獲取類的子標簽數量
      int childnodesize_1 = element.childnodesize();
      //循環獲取子標簽內的內容
      for (int i = 0; i < childnodesize_1; i++) {
        //獲取車標圖片地址
        string tupian = element.child(i).child(0).child(0).child(0).child(0).attr("src");
        //獲取品牌名稱
        string pinpai = element.child(i).child(0).child(1).text();
        //輸出獲取內容看是否正確
        system.out.println("車標圖片地址-----------" + tupian);
        system.out.println("品牌-----------" + pinpai);
        system.out.println();
        //把車標圖片保存到本地
        string tupian_1 = "http:"+tupian;
        //連接url
        url url1 = new url(tupian_1);
        urlconnection uri=url1.openconnection();
        //獲取數據流
        inputstream is=uri.getinputstream();
        //獲取后綴名
        string imagename = tupian.substring(tupian.lastindexof("/") + 1,tupian.length());
        //寫入數據流
        outputstream os = new fileoutputstream(new file(saveimgpath, imagename));
        byte[] buf = new byte[1024];
        int p=0;
        while((p=is.read(buf))!=-1){
          os.write(buf, 0, p);
        }
        /**
         * 因為每個品牌下有多個合資工廠
         * 比如一汽大眾和上海大眾還有進口大眾
         * 所有需要循環獲取合資工廠名稱和旗下
         * 車系
         */
        
        //獲取車系數量
        int childnodesize_2 = element.child(i).child(1).child(0).childnodesize();
        /**
         * 獲取標簽下子標簽數量
         * 如果等于1則沒有其他合資工廠
         */
        int childnodesize_3 = element.child(i).child(1).childnodesize();
        if(childnodesize_3==1){
          //循環獲取車系信息
          for (int j = 0; j < childnodesize_2; j++) {
            string chexi = element.child(i).child(1).child(0).child(j).child(0).child(0).text();
            system.out.println("車系-----------" + chexi);
          }
        }else{
          /**
           * 如果childnodesize_3大于1
           * 則有多個合資工廠
           */
          //分別獲取各個合資工廠旗下車系
          for (int j = 0; j < childnodesize_3; j++) {
            
            int childnodesize_4 = element.child(i).child(1).child(j).childnodesize();
            /**
             * 如果j是單數則是合資工廠名稱
             * 否則是車系信息
             */
            int k = j%2;
            
            if(k==0){
              //獲取合資工廠信息
              string hezipinpai = element.child(i).child(1).child(j).child(0).text();
              system.out.println("合資企業名稱-----------" + hezipinpai);
            }else{
              //int childnodesize_5 = element.child(i).child(1).child(0).childnodesize();
              //循環獲取合資工廠車系信息
              for(int l = 0; l < childnodesize_4; l++){
                string chexi = element.child(i).child(1).child(j).child(l).child(0).child(0).text();
                system.out.println("車系-----------" + chexi);
              }
            }
          }
          
        }
        
        system.out.println("************************");
        system.out.println("************************");
        
      }
    }
  }
 
 
}

3.運行結果

jsoup如何爬取圖片到本地jsoup如何爬取圖片到本地jsoup如何爬取圖片到本地

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/fengzhifei/archive/2018/01/30/8383448.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 黄a级| 亚洲欧美韩国日产综合在线 | 亚洲国产精品综合一区在线 | 精品日本三级在线观看视频 | 欧美日韩中文字幕一区二区高清 | 国产成人亚洲影视在线 | 蜜桃久久久亚洲精品成人 | 60岁了天天要小伙子 | 国产特级毛片aaaaaa | 日本漫画无翼乌 | 欧美三级做爰全过程 | 夫妇野外交换激情 | juy_661佐佐木明希在线播放 | 91欧洲在线视精品在亚洲 | 金莲一级淫片aaaaaa | 亚洲欧美另类第一页 | 天天做日日做天天添天天欢公交车 | 96萝莉| 午夜久久免影院欧洲 | 嫩草研究| 欧美亚洲国产另类在线观看 | 国产suv精品一区二区四区三区 | 91制片厂制作传媒破解版免费 | 精品精品久久宅男的天堂 | 国产成人性色视频 | 亚洲国产情侣一区二区三区 | 国产午夜永久福利视频在线观看 | 免费在线公开视频 | 欧美贵妇videos办公室 | 青青青国产精品国产精品久久久久 | 青青草国产免费久久久91 | 无码乱人伦一区二区亚洲一 | 国产极品精频在线观看 | 九九热综合 | 精品午夜中文字幕熟女人妻在线 | 国产人人艹 | 性美国人xxxxx18 | 免费一级特黄特色大片在线观看 | 四虎影院观看 | sss在线观看免费视频 | 日韩精品免费一级视频 |