'HTTP 오류 405 : 허용되지 않는 메소드'오류가 발생합니다. 내 코드파이썬 3 : HTTP 오류 405 : 허용되지 않는 메소드
import urllib.request
import urllib.parse
try:
url = 'https://www.google.com/search'
values = {'q': 'python programming tutorials'}
data = urllib.parse.urlencode(values)
data = data.encode('utf-8') # data should be bytes
headers = {}
headers['User-Agent'] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
req = urllib.request.Request(url, data, headers = headers)
resp = urllib.request.urlopen(req)
print("HERE")
respData = resp.read()
saveFile = open('withHeaders.txt', 'w')
saveFile.write(str(respData))
saveFile.close()
except Exception as e:
print(e)
같아요 오류가 REQ = urllib.request.Request (URL, 데이터, 헤더 = 헤더)에서입니다. 구문 오류는 무엇입니까? 코드에서 무엇을 변경해야합니까? 그리고 어떤 개념상의 실수라도 저를 바로 잡습니다.
편집
개념 :
def URLRequest(url, params, method="GET"):
if method == "POST":
return urllib2.Request(url, data=urllib.urlencode(params))
else:
return urllib2.Request(url + "?" + urllib.urlencode(params))
www.pythonforbeginners에 : 그것은 URLLIB
또는 당신이 URLLIB에 충실하려는 경우, 당신이 할 수있는 것보다 훨씬 청소기입니다 : 서버가 기대하지 않는 HTTP 메소드를 사용하고 있습니다. POST 요청을'https : // www.google.com/search'으로 보내는 이유는 무엇입니까? – Blender
GET 메소드가 예상대로 작동하고 POST를 사용하고 있으므로 적절한 방법을 찾으십시오. –
@ PavanKumarTS 올바른 방법은 무엇입니까? 나는 이것에 초보자이다. 덕분에 –