urllib 庫python
urllib 庫是 Python 中一個最基本的網絡請求庫。能夠模擬瀏覽器的行爲,向指定的服務器發送一個請求,並能夠保存服務器返回的數據。瀏覽器
1、urlopen 函數:服務器
在 Python3 的 urllib 庫中,全部和網絡請求相關的方法,都被集到 urllib.request 模塊下面了,如下先來看看 urlopen 函數基本的使用:網絡
實際上,使用瀏覽器訪問百度,右鍵查看源代碼。你會發現,跟咱們打印出來的數據是如出一轍的。也就是說,上面三行代碼就已經幫咱們把百度的首頁所有代碼爬下來了。一個基本的url 請求對應的 python 代碼真的很是簡單。函數
如下對 urlopen 函數進行詳細講解:post
- url :請求的 url 。
- data:請求的data ,若是設置了這個值,那麼將變成 post 請求。
- 返回值:返回值是一個 http.client.HTTPResponse 對象,這個對象是一個類文件句柄對象。有read(size)、readline()、readlines()以及getcode()等方法。
2、urlretrieve 函數:編碼
這個函數能夠方便的將網頁上的一個文件保存到本地。一下代碼能夠很是方便的將百度的首頁下載到本地E盤的frame文件夾中:url
還能夠下載網頁上的圖片到本地,只需複製網頁上的圖片地址:spa
3、urlencode 函數:3d
用瀏覽器發送請求的時候,若是url 中包含了中文或者其餘特殊字符,那麼瀏覽器會自動的給咱們進行編碼。而若是使用代碼發送請求,那麼就必須手動的進行編碼,這時候就應該使用 urlencode 函數來實現。 urlencode 能夠把字典數據轉換爲 URL 編碼的數據。
4、parse_qs 函數:
能夠將通過編碼後的 url 進行解碼。
5、urllib 庫之 urlparse 和 urlsplit 函數:
有時候拿到一個 url ,想要對這個url中的各個組成部分進行分割,那麼這個時候就可使用 urlparse 或者是 urlsplit 來進行分割。
urlparse 和 urlsplit 的區別就在於 urlparse 多了一個 params 屬性。還能夠指定查看哪些屬性:
6、request.Request 類:
若是想要在請求的時候增長一些請求頭,那麼就必須使用 request.Request 類來實現。好比要增長一個 User-Agent:
request.Request 類除了能夠傳遞headers,還能夠傳遞 Data 和 method。