麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > WEB開發 > 正文

用java去爬取別人的網頁上的內容

2024-04-27 15:19:17
字體:
來源:轉載
供稿:網友

在爬取別人的東西之前,我們需要做一些處理

1.我們先在eclipse中創建一個工程

3. http://mvnrepository.com/artifact/org.jsoup/jsoup/1.10.2,進入這個網站,將下面這段代碼復制下來

4.將copy的代碼照如下的方式處理

5.點擊保存,然后jsoup這個包就被我們引入,這時候就可以正式開始從網頁上爬取別人的資料了

package com;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.*;import java.util.ArrayList;import java.util.List;import java.util.Scanner;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;public class getPIcDemo {	//1.從多圖片的網頁中獲取眾多的圖片的地址,url代表網頁的網址	public static List getmanyPicAdress(String Url) {		List<String> list=new ArrayList<>();		try {//我們先將url網絡里面的			Document document=Jsoup.connect(Url).get();			//我們預先知道這個網頁里面的圖片的class屬性的“relative block works-detail hover-none works-img-box”是唯一的,			//所以就得到了這些元素			//這些元素里面就包含了想要的信息					Elements elements=document.getElementsByAttributeValue("class", "relative block works-detail hover-none works-img-box");//			在elements中我們獲取了多個element,element中就包含了網頁鏈接			for (int i = 0; i < elements.size(); i++) {//				循環輸出element,				Element element=elements.get(i);//				這時候,element.attr("href")就可以將href里面包含的網頁鏈接內容寫出來				list.add(element.attr("href"));			}					} catch (IOException e) {			// TODO Auto-generated catch block			e.PRintStackTrace();		}		return list;//我們用鏈表將所有的href里面的數據儲存起來,最好不要用數組,因為我們不知道href數據有多少個	}	//	2.第一個方法,我們用getmanyPicAdress方法獲取到了圖片的詳細地址,現在我們要做的,就是從圖片的詳細地址中獲取圖片的下載地址//	將第一個方法獲得的鏈表值作為參數傳入到函數中	public static List getPicAdress(List list) {		List<String> list1=new ArrayList<>();//		用循環讀取一個個的鏈表里的內容(圖片的詳細地址)		for(int i=0;i<list.size();i++){		try {//			新建一個string,用來存儲list里面的數據			String st=(String)list.get(i);//			將string讀取的數據存入到document中			Document document =Jsoup.connect(st).get();//			因為我們找到的關于圖片下載地址的唯一標識符,是class="works-img",先用elements將圖片的下載地址找到			Elements elements=document.getElementsByAttributeValue("class", "works-img");//			再用element讀出elements的數據				for(int m=0;m<elements.size();m++){					Element element=elements.get(m);//					最后用新的一個鏈表將數據裝起來,并且返回					list1.add(element.attr("src"));				}		} catch (IOException e) {						e.printStackTrace();		}		}		System.out.println(list1);//		返回數據所獲得的圖片下載地址的值		return list1;	}		//3.用下載地址,下載圖片//	將第二個方法返回的裝載圖片下載地址的鏈表作為參數返回鏈表	public static void test(List list) {				URL myurl;		InputStream is = null;		OutputStream os = null;				try {//			我們還是要用循環將鏈表里面的數據一個個讀取出來,讓后一個個的去下載			for (int i = 0; i < list.size(); i++) {//				還是用一個新的字符串去存儲list讀出來的數據				String string=(String) list.get(i);				//				因為涉及到圖片的存儲問題,名字顯然不能一樣,所以就讓從圖片的末尾的信息作為文件名//				從最后一個“/”開始讀取,				int beginIndex=string.lastIndexOf("/");//				文件名就以最后一個/開始,直到結束				String picName=string.substring(beginIndex+1);				//				下列是根據鏈接讀取圖片的信息并儲存的方法,不再贅述				myurl=new URL(string);				is=myurl.openConnection().getInputStream();				byte byte1[]=new byte[102400];				os=new FileOutputStream(picName);				int len;				while((len=is.read(byte1))!=-1){					os.write(byte1, 0, len);				}				os.flush();			}			os.close();			is.close();		} catch (MalformedURLException e) {			// TODO Auto-generated catch block			e.printStackTrace();		} catch (IOException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}		public static void main(String[] args) {		test(getPicAdress(getmanyPicAdress("http://www.nipic.com/photo/jingguan/index.html")));	}}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄色网址进入 | 娇喘视频在线观看 | 狠狠一区二区 | 中文字幕在线观看视频一区 | 欧美黄色免费视频 | 国产精品国产成人国产三级 | 性生活视频软件 | 18被视频免费观看视频 | 视频二区国产 | 曰韩黄色片 | 欧美一级毛片特黄黄 | 性爱视频在线免费 | 在线看一区二区三区 | 一级网站 | 欧美aⅴ视频 | 久久久精品视频免费看 | 国产小视频在线观看 | 国产1区2| 国产精品99久久久久久久女警 | 他也色在线视频 | 日本在线视 | 青热久思思 | 国产免费激情视频 | 国产欧美精品一区二区三区四区 | 欧美在线观看视频一区二区 | 久久国产亚洲视频 | 久久久久久久黄色片 | 久久久久久久一区二区 | 亚洲电影在线播放 | 中国妞xxxhd露脸偷拍视频 | 羞羞网站在线观看入口免费 | 欧美一级精品片在线看 | 欧美成人一级 | 欧美男女爱爱视频 | 国产91在线高潮白浆在线观看 | 一级成人毛片 | 国产精品视频久 | 国产精品视频专区 | 史上最强炼体老祖动漫在线观看 | 亚洲一区二区不卡视频 | 国产亚洲精品久久 |