Java簡單爬蟲示例

2021-07-08 12:43:37 字數 1947 閱讀 9575

步驟簡介

獲取鏈結文字內容:urlconnection例項呼叫getinputstream()獲取輸入流,並返回輸入流(inputstream)物件,初始化給inputstreamreader,將位元組流轉換為字元流,並指定字符集編碼utf-8。bufferedreader從字元流中逐行讀取文字存入string型別。

查重:set集合來判斷查詢到的子串是否重複,如果不重複則新增到集合裡。

讀取輸入流:url類初始化給定查詢到的鏈結,並呼叫openconnection()返回乙個httpurlconnection的例項,用這個例項呼叫getinputstream()獲取輸入流,並初始化給緩衝輸入流bufferedinputstream

寫入輸出流:建立bytearrayoutputstream例項和byte陣列例項,用bufferedinputstream讀入到byte陣列裡,並快取到位元組陣列輸出流。

儲存資料:fileoutputstream(string name)建立向指定名稱的檔案中寫入資料的輸出檔案流,並初始化到輸出流,然後將位元組陣列中的資料通過outputstream寫入指定位置。

關閉流:對以上的輸入輸出流的關閉close()

**示例

setimageurlset = new hashset();

urlconnection urlconn;

try

// system.out.println(src);

pattern p = pattern

.compile("");

matcher m = p.matcher(src);

while (m.find())

imageurlset.add(imageurl);

urlconn = new url(imageurl).openconnection();

bufferedinputstream instream = new bufferedinputstream(

urlconn.getinputstream());

bytearrayoutputstream boutstream = new bytearrayoutputstream();

byte buf = new byte[1024];

int size = 0;

while ((size = instream.read(buf)) > 0)

byte srcbin = boutstream.tobytearray();

string filename = imageurl.replaceall("^.+/", "");

system.out.print(filename+"\t");

outputstream osr = new bufferedoutputstream(

new fileoutputstream("ios7/" + filename));

osr.write(srcbin);

instream.close();

boutstream.close();

osr.close();

} }} catch (malformedurlexception e) catch (ioexception e) catch (interruptedexception e)

python爬蟲簡單示例

準備工作 安裝python3環境 beautifulsoup4庫 from urllib import request req request.urlopen print req.read decode utf 8 目的是不讓伺服器認為是爬蟲,若不帶此瀏覽器資訊,則可能會報錯 req request...

java的簡單爬蟲

印言 之前沒有寫過爬蟲,最近被學長壓迫,所以迅速學習了一波爬蟲,這個過程十分的痛苦。之前自己也沒有發部落格的習慣,彷彿發部落格是上個世紀的事情,之前也有很多技術學習,但沒有放到部落格上。希望以後學了什麼技術可以發上來,既加深自己的印象,還幫助了大眾。接下來說一說我爬取過程中遇到的坑。怎麼解決這兩個坑...

Java簡單網頁爬蟲

簡單原理就是使用apache訪問網頁,獲取網頁內容,然後根據匹配的開始和結束位置,得到想要的結果 首先需要引入apache的幾個包 import org.apache.http.util.entityutils 然後設定url,需要獲取的開始和結束位置的html,具體位置可以通過檢視網頁源 得到 p...