[완료] Python으로 HTML을 긁어오는 프로그램을 짜고있는데요..
글쓴이: thdwjddn123 / 작성시간: 토, 2010/03/06 - 12:27오전
HTML을 긁어오고싶은데 POST인증방식때문에 첫페이지만 접근이 됩니다.
로그인은 아니구요 HTML 소스코드를 예를들자면
<form method="POST"> <input id="enterbutton" type="submit" name="user_choice" value="Enter" /> </form>
이런식으로 되있구요 저 버튼을 눌러야만 메인페이지로 접근이 가능합니다(url은 누른후나 누르기전이나 같아요.).
이런 경우 해당 사이트에 접근하여 코드를 긁어오고 싶으면 어떻게해야하나요?
Forums:


mechanize 쓰시면
mechanize 쓰시면 될겁니다.
webkit 같은 layout
webkit 같은 layout engine을 이용하는 것도
손쉽습니다.
------------------------------------------
emacs user
------------------------------------------
emacs user
pycurl을 사용하시면
pycurl을 사용하시면 됩니다.
아래 예제를 첨부하였으나 정확히 작동하는지 검증 하지 않았습니다.
자세한 내용을 링크를 참조하시면 됩니다.
http://curl.haxx.se/libcurl/c/libcurl-tutorial.html
import pycurl import urllib from StringIO import StringIO curl = pycurl.Curl() html = StringIO() #curl로 웹페잊 접속후 html 소스를 받아오기 위한 StringIO 객체 선언 referer = "http://www.xxx.com" #이전페이지 url = "http://www.aaa.com" #실제 접속할 페이지 cookieFile = ".cookie" #쿠키파일명 userAgent = "웹브라우저 이름" #웹브라우저이름 #폼필드 formFields = {"user_choice":"user_choice value"} curl.setopt(pycurl.USERAGENT, userAgent) curl.setopt(pycurl.HEADER, 0) curl.setopt(pycurl.TIMEOUT, 120) curl.setopt(pycurl.COOKIEFILE, cookieFile) curl.setopt(pycurl.COOKIEJAR, cookieFile) curl.setopt(pycurl.FOLLOWLOCATION, 1) curl.setopt(pycurl.REFERER, referer) curl.setopt(pycurl.POSTFIELDS, urllib.urlencode(formFields)) curl.setopt(pycurl.URL, url) curl.setopt(pycurl.WRITEFUNCTION, html.write) curl.perform() effectiveUrl = curl.getinfo(pycurl.EFFECTIVE_URL) #서버에서 페이지 주소를 변경 할경우 실제 접속한 페이지 정보 httpCode = curl.getinfo(pycurl.HTTP_CODE) #200, 40x, 50x등 http 에러 코드 curl.close() print html.getvalue()모두 감사드립니다
답변 모두 감사드립니다.
잘 해결했습니다~!
댓글 달기