1、爬取乙個簡單的網頁
import requests # 以get方法傳送請求,返回資料 response = requests. get () # 以二進位制寫入的方式開啟乙個檔案 f = open( 'index.html' , 'wb' ) # 將響應的位元組流寫入檔案 f.write(response.content) # 關閉檔案 f.close()
可以看到頁面的布局已經完全亂了,而且也丟失了很多東西。學過前端的都知道,乙個網頁是由html頁面還有許多靜態檔案構成的,而我們爬取的時候只是將html**爬取下來,html中鏈結的靜態資源,像css樣式和檔案等都沒有爬取,會看到這種很奇怪的頁面。
2、爬取網頁中的
import requests # 準備url # 傳送get請求 response = requests.get(url) # 以二進位制寫入的方式開啟檔案 f = open('test.jpg', 'wb') # 將檔案流寫入 f.write(response.content) # 關閉檔案 f.close()
import re import requests # 要爬取的** url = # 獲取網頁原始碼 response = requests.get(url) # 匹配原始碼中的資源 results = re.findall("img[ss]+src="(.+)"", response.text) # 用於命名的變數 name = 0 # 遍歷結果 for result in results: # 在原始碼中分析出資源寫的是絕對路徑,完整url是主站+絕對路徑 img_url = url+result # f = open(str(name) + '.jpg', 'wb') f.write(requests.get(img_url).content) f.close() name += 1
上面我們就完成了乙個**的爬取。在匹配時我們用到了正規表示式,因為正則的內容比較多,在這裡就不展開了,有興趣的讀者可以自己去了解一下,這裡只說乙個簡單的。python使用正則是通過re模組實現的,可以呼叫 findall 匹配文字中所有符合要求的字串。該函式傳入兩個引數,第乙個為正規表示式,第二個為要匹配的字串,對正則不了解的話只需要知道我們使用該正則可以將中的src內容拿出來。
使用beautifulsoup解析html
beautifulsoup是乙個用來分析xml檔案和html檔案的模組,我們前面使用正規表示式進行模式匹配,但自己寫正規表示式是乙個比較繁瑣的過程,而且容易出錯。如果我們把解析工作交給beautifulsoup會大大減少我們的工作量,在使用之前我們先安裝。
python的取餘演算法原理 python 取餘演算法
coding utf 8 created on 2012 12 28 取餘。取乙個任意小於1 美元的金額,然後計算可以換成最少多少枚硬幣。硬幣有1 美分,5 美分,10 美分,25 美分四種。1 美元等於100 美分。舉例來說,0.76 美元換算結果 應該是 3 枚25 美分,1 枚1 美分。類似7...
python的取餘演算法原理 python 取餘演算法
coding utf 8 created on 2012 12 28 取餘。取乙個任意小於1 美元的金額,然後計算可以換成最少多少枚硬幣。硬幣有1 美分,5 美分,10 美分,25 美分四種。1 美元等於100 美分。舉例來說,0.76 美元換算結果 應該是 3 枚25 美分,1 枚1 美分。類似7...
python怎麼取模 Python中的取模運算方法
所謂取模運算,就是計算兩個數相除之後的餘數,符號是 如a b就是計算a除以b的餘數。用數學語言來描述,就是如果存在整數n和m,其中0 m b,使得a n b m,那麼a b a n b m.取模運算的兩個運算元都必須是整數,可以是負整數,但是b不可以是0,因為被除數不能為0嘛。當a和b中存在負整數時...