Связь между Urllib3 и Urlencode в Python3

Python

предисловие

существуетPython, мы обычно используемurllibсерединаurlencodeметод кодирует словарь для отправки данных вurlи так далее, но вPython2иPython3серединаurllibпредставлено в модулеurlencodeРасположение пакета несколько иное.


Для Python2

Python2предоставлено вurllibиurllib2два модуля.

  • urlencodeМестонахождение метода:
urllib.urlencode(values)    # 其中values为所需要编码的数据,并且只能为字典
  • Например, для моделирования приземления на веб-сайте CSDN программа образца выглядит следующим образом
import urllib2

values = {"username":"962457839@qq.com","password":"XXXX"}
data = urllib.urlencode(values) 
url = "https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn"
request = urllib2.Request(url,data)
response = urllib2.urlopen(request)
print response.read()

Для Python3

Python3Также вurllibиurllib3две библиотеки, гдеurllibПочтиPython2серединаurllibиurllib2Коллекция из двух модулей, поэтому наши наиболее часто используемыеurllibмодуль, покаurllib3Используется как модуль расширения.

  • urlencodeместоположение метода
urllib.parse.urlencode(values)
  • Например, для имитации посадки на веб-сайте CSDN пример программы выглядит следующим образом:
from urllib import request
from urllib import parse
from urllib.request import urlopen

values = {'username': '962457839@qq.com', 'password': 'XXXX'}
data = parse.urlencode(values).encode('utf-8')  # 提交类型不能为str,需要为byte类型
url = 'https://passport.csdn.net/account/login?from=http://my.csdn.net/my/mycsdn'
request = request.Request(url, data)
response = urlopen(request)
print(response.read().decode())

Ссылка на ссылку