【笔记】Python3的urllib

前言

URL 处理模块(Python

引入依赖

Python2

1
import urllib2

Python3

1
import urllib.request

发送请求

1
2
3
url = "http://example.com"

response = urllib.request.urlopen(url)
1
2
3
4
url = "http://example.com"

request = urllib.request.Request(url)
response = urllib.request.urlopen(request)

请求参数

GET

path

1
2
3
4
url = "http://example.com"
params = ""

response = urllib.request.urlopen(f"{url}/{params}")

query

1
2
3
4
5
6
url = "http://example.com"
params = urllib.parse.urlencode({
"key": "value"
})

response = urllib.request.urlopen(f"{url}?{params}")

POST

form

1
2
3
4
5
6
7
8
9
10
import urllib.parse

url = "http://example.com"
form_data = urllib.parse.urlencode({
"key": "value"
}).encode("UTF-8")

request = urllib.request.Request(url, data=form_data)
request.add_header("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
response = urllib.request.urlopen(request)

JSON

1
2
3
4
5
6
7
8
9
10
11
import urllib.parse
import json

url = "http://example.com"
json_data = json.dumps({
"key": "value"
}).encode("UTF-8")

request = urllib.request.Request(url, data=json_data)
request.add_header("Content-Type", "application/json; charset=UTF-8")
response = urllib.request.urlopen(request)

处理响应

response:响应回来的数据

1
data = response.read().decode()
1
data = response.read().decode("UTF-8")

请求头

定义请求头

1
2
request = urllib.request.Request(url)
request.add_header("key", "value")
1
2
3
4
5
headers = {
"key": "value"
}

request = urllib.request.Request(url, headers=headers)

获取请求头

1
request.get_header("key")

获取URL

1
request.get_full_url()

响应头

获取响应头

1
result = response.headers

完成

参考文献

哔哩哔哩——随风kali
CSDN——蓝星花