2012-08-15 3 views
0

자바 스크립트를 통해 요청 된 페이지의 html을 다운로드하려고하는데 일반적으로 브라우저의 링크를 클릭하면됩니다. 그것은 일반적으로 URL이 있기 때문에 나는 첫 번째 페이지를 다운로드 할 수 있습니다Python - 자바 스크립트 URL 처리하기?

http://www.locationary.com/stats/hotzone.jsp?hz=1 

을하지만 숫자 (1 ~ 10)있는 페이지의 하단 링크가 있습니다. 당신이 하나를 클릭한다면, 그것은 간다에게, 예를 들어, 2 페이지의 정보는 다음의 제품에 :

http://www.locationary.com/stats/hotzone.jsp?ACTION_TOKEN=hotzone_jsp$JspView$NumericAction&inPageNumber=2 

내 프로그램에 URL과 HTML을 다운로드하려고, 그것은 나에게의 다른 페이지의 HTML을 준다 넣을 때 웹 사이트와 나는 그것이 홈 페이지라고 생각한다.

javascript를 사용하는이 URL의 html과 특정 URL이없는 경우 어떻게해야합니까?

감사합니다.

P. 나는 urllib/urllib2와 cookielib을 사용하고 있습니다.

또한 방금 PyQuery라는 것을 찾았습니까? 그걸 쓸 수 있을까요? 그리고 어떻게 그럴 수 있을까요?

코드 :

import urllib 
import urllib2 
import cookielib 
import re 

URL = '' 

def load(url): 

    data = urllib.urlencode({"inUserName":"email", "inUserPass":"password"}) 
    jar = cookielib.FileCookieJar("cookies") 
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar)) 
    opener.addheaders.append(('User-agent', 'Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20100101 Firefox/13.0.1')) 
    opener.addheaders.append(('Referer', 'http://www.locationary.com/')) 
    opener.addheaders.append(('Cookie','site_version=REGULAR')) 
    request = urllib2.Request("https://www.locationary.com/index.jsp?ACTION_TOKEN=tile_loginBar_jsp$JspView$LoginAction", data) 
    response = opener.open(request) 
    page = opener.open("https://www.locationary.com/index.jsp?ACTION_TOKEN=tile_loginBar_jsp$JspView$LoginAction").read() 

    h = response.info().headers 
    jsid = re.findall(r'Set-Cookie: (.*);', str(h[5])) 
    data = urllib.urlencode({"inUserName":"email", "inUserPass":"password"}) 
    jar = cookielib.FileCookieJar("cookies") 
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar)) 
    opener.addheaders.append(('User-agent', 'Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20100101 Firefox/13.0.1')) 
    opener.addheaders.append(('Referer', 'http://www.locationary.com/')) 
    opener.addheaders.append(('Cookie','site_version=REGULAR; ' + str(jsid[0]))) 
    request = urllib2.Request("https://www.locationary.com/index.jsp?ACTION_TOKEN=tile_loginBar_jsp$JspView$LoginAction", data) 
    response = opener.open(request) 
    page = opener.open(url).read() 
    print page 

load(URL) 
+0

사용중인 코드를 보여줄 수 있습니까? – tijko

답변