今天學習的是python的爬蟲基礎。
其中知識點如下:
使用時需要匯入包urllib.request,在python2中使用urllib需要用import urllib,urllib2;
開始鏈結訪問
html = urllib.request.urlopen(url);
讀取**原始碼
data = html.read();
將原始碼儲存到本地檔案中,由於data資料為bytes所以寫入方式為:wb
file = open(「***x.html」,「wb」,1);
讀寫許可權說明:
r 開啟唯讀檔案,該檔案必須存在。
r+ 開啟可讀寫的檔案,該檔案必須存在。
rb+ 讀寫開啟乙個二進位制檔案,只允許讀寫資料。
rt+ 讀寫開啟乙個文字檔案,允許讀和寫。
w 開啟只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。
w+ 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。
a 以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。(eof符保留)
a+ 以附加方式開啟可讀寫的檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。(原來的eof符不保留)
wb 只寫開啟或新建乙個二進位制檔案;只允許寫資料。
wb+ 讀寫開啟或建立乙個二進位制檔案,允許讀和寫。
wt+ 讀寫開啟或著建立乙個文字檔案;允許讀寫。
at+ 讀寫開啟乙個文字檔案,允許讀或在文字末追加資料。
ab+ 讀寫開啟乙個二進位制檔案,允許讀或在檔案末追加資料。
url常規用法:
獲取訪問**的**
print(「當前訪問**:%s」%html.geturl());
獲取**網路狀態的返回碼:200的返回碼為正常範圍,伺服器癱瘓訪問404
print(「訪問網路的狀態:%s」%html.getcode());
**中文亂碼,在複製**時可能會生成亂碼,例如:
url_01 = 「武漢工程大學�&tid=2125163782&pic_id=f8c5a0cc7cd98d106764055d213fb80e7aec90c6」;
亂碼的產生:
html_01 = urllib.request.quote(url_01);
print(「產生的網路位址為:%s」%html_01);
如何修正亂碼?(解碼)
html_02 = urllib.request.unquote(html_01);
print(「解碼後的網路位址為:%s」%html_02);
開始解析**中的
#建立函式
def get_data_img(data):
建立乙個正規表示式進行資料篩選(可使用網路工具迅速篩選)
# 網路不好—匹配小圖
建立乙個正規表示式的模板
pat = re.compile(r);
進行資料匹配
第乙個引數需要正規表示式模板,第二個為字串型別的資料
imgurls = re.findall(pat,str(data));
返回資料為陣列格式
print(imgurls);
注意加上轉義字元/
pathurl = 「c:/users/administrator/desktop/10001」
if not os.path.exists(pathurl):
os.makedirs(pathurl)
print(「成功建立」)
pass
else:
print(「該檔案已經存在」)
pass
Python學習日誌(四)
所有的 python 對像都擁有三個特性 身份,型別和值。身份 每乙個物件都有乙個唯一的身份標識自己,任何物件的身份可以使用內建函式 id 來得到。這個值可以被認為是該物件的記憶體位址。您極少會用到這個值,也不用太關心它究竟是什麼。型別 物件的型別決定了該物件可以儲存什麼型別的值,可以進行什麼樣的操...
Python學習日誌(四)
列表名 元素1,元素2,列表和c中的陣列有些相似,但列表的功能更加強大,陣列的元素要求是同種型別,但列表可以是混合型別。跟陣列一樣,通過元素的索引值,我們可以從列表獲取單個資料。這裡介紹上面 用到的幾個函式 extend 拓展函式,需要注意的是,由於使用列表拓展列表,所以這個函式的引數是乙個列表。i...
shell 學習日誌(四)
dd命令會轉殖給定的輸入內容,然後將一模一樣的乙份副本寫入到輸出。stdin 裝置檔案 普通檔案等都可以作為輸入,stout 裝置檔案 普通檔案等也可以作為輸出。dd if dev zero of junk.data bs 1m count 1if input file of output file...