2017-02-07 3 views
0

제목이이고 대답이 이면입니다. 응답 웹 페이지는 다음과 같습니다.urllib를 사용하여 get 메서드에 대한 인수를 전달하는 방법은 무엇입니까?

enter image description here

여기 python3와 get 메소드에 대한 인수를 전달하는 내 파이썬 코드입니다.

import urllib.request 
import urllib.parse 
url = 'http://www.it-ebooks.info/' 
values = {'q': 'wordpress','type': 'title'} 
data = urllib.parse.urlencode(values).encode(encoding='utf-8',errors='ignore') 
headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0' } 
request = urllib.request.Request(url=url, data=data,headers=headers,method='GET') 
response = urllib.request.urlopen(request) 
buff = response.read() 
html = buff.decode("utf8") 
print(html) 

원하는 출력 웹 페이지를 가져올 수 없습니다. 예제에서 urllib을 사용하여 get 메소드의 인수를 전달하는 방법은 무엇입니까?

답변

1

dataurllib.request.Request의 kwarg는 POST 요청에 대해서만 사용되며 요청 본문을 수정합니다.

params = '?q=wordpress&type=title' 
url = 'http://www.it-ebooks.info/search/{}'.format(params) 

당신은 물론 시간이 걸릴과 일반적인 기능으로이 문제를 일반화 할 수는 URL에 다음을 추가해야하므로

GET 요청은 단순히 URL 매개 변수를 사용합니다. 라이브러리라는 요청을 사용하는 경우

1

은 더

enter image description here

import requests 


headers = { 
    'DNT': '1', 
    'Accept-Encoding': 'gzip, deflate, sdch', 
    'Accept-Language': 'es-ES,es;q=0.8,en;q=0.6', 
    'Upgrade-Insecure-Requests': '1', 
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', 
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 
    'Referer': 'http://www.it-ebooks.info/', 
    'Connection': 'keep-alive', 
} 

r = requests.get('http://www.it-ebooks.info/search/?q=wordpress&type=title', headers=headers) 

print r.content