我尝试将此 CURL 命令转换为 urllib
curl :
curl -X POST 'http://118.tct.ir/exe/indseane17.pgm' --data 'cmbPro=%CA%E5%D1%C7%E4%0D%0A&pcity=021+++++&lname=%C7%E3%ED%D1%C7%E3%CC%CF%ED&fname=%CD%D3%E4&adrs=&hideme=PZ83M6S2W7'
urllib:
from urllib.request import Request, urlopen
import urllib
data = urllib.parse.urlencode({
'cmbPro':'%CA%E5%D1%C7%E4%0D%0A',
'pcity':'021+++++',
'lname':'%C7%E3%ED%D1%C7%E3%CC%CF%ED',
'fname':'%CD%D3%E4&adrs=&hideme=PZ83M6S2W7'
})
data = data.encode('ascii')
q = Request('http://118.tct.ir/exe/indseane17.pgm',data=data)
a = urlopen(q).read()
print(a)
但是我遇到了这个错误:
HTTPError: HTTP Error 404: Not Found
但是当我尝试使用curl 时,它工作得很好。
有什么问题吗?
最佳答案
字符串cmbPro=%CA%E5%D1%C7%E4%0D%0A&pcity=021+++++&lname=%C7%E3%ED%D1%C7%E3%CC%CF%ED&fname =%CD%D3%E4&adrs=&hideme=PZ83M6S2W7
已进行 urlencode 编码,您可以按原样使用它。不存在具有以下内容的 404
:
from urllib.request import Request, urlopen
import urllib
data = 'cmbPro=%CA%E5%D1%C7%E4%0D%0A&pcity=021+++++&lname=%C7%E3%ED%D1%C7%E3%CC%CF%ED&fname=%CD%D3%E4&adrs=&hideme=PZ83M6S2W7'
data = data.encode('ascii')
q = Request('http://118.tct.ir/exe/indseane17.pgm', data=data)
a = urlopen(q).read()
print(a) # <html>...</html>
关于python - 将curl转换为urllib python3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41302190/