특정 작업을 자동화하기 위해 Python을 사용하고 싶습니다. 특히, 파이썬을 사용하여 웹 사이트와 상호 작용하여 페이지에서 특정 정보를 얻고, 요청 (POST 데이터 및 응답 읽기), 다운로드 및 업로드와 같은 작업을 수행하고자합니다. 지금까지 파이썬을 사용하여 urllib2를 사용하여 페이지에서 HTML을 가져올 수있었습니다. 내가 시도한 다음 것은 페이지에 요청을 보내는 것입니다. 몇 차례 시도했지만 실패했습니다.Python의 urllib2를 사용하여 웹 페이지에 요청 보내기
>>> import urllib2
>>> import urllib
>>> url = "http://www.stackoverflow.com/"
>>> values = {}
>>> values["input"] = "foo"
>>> data = urllib.urlencode(values)
>>> request = urllib2.Request(url + "search/", data)
>>> response = urllib2.urlopen(request)
>>> html = response.read()
>>> print html
내가 지금까지 일을 이해하는 방법은 내가 필드와 입력의 이름 사전을 만들고 urllib.urllencode (값)로 인코딩 할 필요가 있다는 것입니다. urllib2.Request (urlReceivingTheRequest, data, headers)를 사용하여 요청을해야합니다. URL 만 주어진 경우 GET 만 가능하지만 주어진 데이터가 POST 인 경우 헤더를 제공 할 수 있습니다. Firefox 나 IE와 같은 일반적인 브라우저. 그런 다음 urllib2.urlopen (요청)을 사용하여 객체와 같은 파일을 반환하는 응답을받습니다. 결과적으로 읽을 수 있습니다(). 내가 이해할 수 있도록 .addheaders ("User-Agent", "")를 사용하여 헤더를 추가하는 핸들러를 수신 할 수있는 urllib2.build_opener()를 사용할 수도 있습니다. 나는 결국이 모든 것을 할 수 있기를 바랄 것입니다. 그러나 우선, 나는 제출 된 양식을 얻고 싶습니다. 위의 코드에서 파이썬과의 대화식 세션에서 올바른 절차를 수행 했습니까? (stackoverflow의 프론트 페이지에있는 검색 필드에 "foo"에 대한 검색을 입력하려고 시도했습니다.)
특별히 어떤 효과가 있습니까? 오류가 있습니까? – Todd