urllib庫的使用

urllib庫是python中最基本的網絡請求庫,模擬瀏覽器的行爲,向指定的服務器發送一個請求,並保存服務器返回的一個數據。

Request:
urlopen()函數參數:
url:請求的url
data:請求的data,若設置該值,則爲post請求。
返回值:返回值是一個 http.client.HTTPResponse 對象,有 read(size), readline(), readlines(), getcode()方法。

response = request.urlopen("http://www.baidu.com")
print(response.read())
print(response.read(3))
print(response.getcode())
print(response.readline())
print(response.readlines())

urlretrieve函數:
request.urlretrieve(‘url’,‘filename’),將網頁下載到本地

request.urlretrieve('http://www.tv432.com', 'heimi.html')
params = {'name': '張三', 'age': 18, 'greet': 'hello world'}
result = parse.urlencode(params)
print(result)

Parse:
urlencode函數:將不在ASCll中的字符進行編碼,url在請求之前,瀏覽器會將url中不在ascll中的字符進行編碼,才能夠進行請求。
parse_qs函數:將編碼的字符進行解碼

url = 'http://www.baidu.com/s'
params0 = {'wd': '劉德華'}
result0 = parse.urlencode(params0)
print(result0)
url = url + '?' + result0
print(url)
response = request.urlopen(url)
print(response.read())
# parse_qs函數
result = parse.parse_qs(result)
print(result)

***urlparse函數:***將scheme,netloc,path,params,query,fragment從url中分離出來

from urllib import  parse

url = 'http://www.baidu.com/s;hello?wd=python&username=abc#1'
result = parse.urlparse(url)
print(result)
print('scheme:', result.scheme)
print('netloc:', result.netloc)
print('path:', result.path)
print('params:', result.params)
print('query:', result.query)
print('fragment:', result.fragment)
result0 = parse.urlsplit(url)
print(result0)

urlsplit函數:與urlparse函數相比缺少params,其餘均爲一樣的。
url中的params也用的比較少,如

url = 'http://www.baidu.com/s;hello?wd=python&username=abc#1

則params ;?中的內容hello

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章