2012-06-27 3 views
1

투명화를 위해 내 서버에 특정 하위 포럼의 특정 중재자 페이지 (예 : 제한됨) 미러를 만들려고합니다. 불행히도 내 python-fu는 약해서 reddit API, 및 심지어 some answers in here으로 조금 고생하고 나면 제대로 된 해결책을 얻지는 못합니다.파이썬으로 reddit 중재자 페이지를 미러링하는 방법

그래서 내가해야 할 일을 특정 사용자와 레딧에 로그인이 만 페이지를 중재자에 액세스

내가 실행 해요 문제에 액세스하기 위해 다른 사람을 위해 내 자신의 서버에있는 파일의 HTML을 복사 그 API와 그 래퍼는 잘 문서화되지 않았기 때문에 로그인 후에 reddit 페이지를 검색 할 수있는 방법이 있다면 발견하지 못했습니다. 그걸 할 수 있다면 이론적으로 간단한 HTML 페이지에 결과를 복사 할 수 있습니다. 내 서버.

파이썬 API 외부에서이를 수행하려고 할 때 파이썬의 내장 모듈을 사용하여 로그인 한 다음 제한된 페이지를 읽는 방법을 알 수 없습니다.

도움을 주시면 감사하겠습니다.

답변

0

나는 PRAW를 사용하지 않으므로 그것에 대해 잘 모르겠다.하지만 내가하고 싶은 일을한다면, 다음과 같이 할 것이다 : 로그인, modhash 저장, HTML에서 HTML 가져 오기 당신이 가고 싶은 곳 :

내가 그것을 저장할 때 어떤 CSS 나 뭔가가 빠져있는 것처럼 보이지만, 그것은 충분히 인식 할 만하다. 당신은 pprintjson

import requests, json 
from pprint import pprint as pp2 

#---------------------------------------------------------------------- 
def login(username, password): 
    """logs into reddit, saves cookie""" 

    print 'begin log in' 
    #username and password 
    UP = {'user': username, 'passwd': password, 'api_type': 'json',} 
    headers = {'user-agent': '/u/STACKOVERFLOW\'s API python bot', } 

    #POST with user/pwd 
    client = requests.session() 
    r = client.post('http://www.reddit.com/api/login', data=UP) 

    #if you want to see what you've got so far 
    #print r.text 
    #print r.cookies 

    #gets and saves the modhash 
    j = json.loads(r.text) 
    client.modhash = j['json']['data']['modhash'] 
    print '{USER}\'s modhash is: {mh}'.format(USER=username, mh=client.modhash) 

    #pp2(j) 

    return client 


client = login(USER, PASSWORD) 

#mod mail url 
url = r'http://www.reddit.com/r/mod/about/message/inbox/' 
r = client.get(url) 

#here's the HTML of the page 
pp2(r.text) 
+0

감사합니다 이것에 대한 많은과 함께 requests 모듈이 필요합니다. 결과를 쓰려면'pp2 (r.text, open ("path/to/local/file", "w"))'로 끝내야했습니다. – Db0

+0

도와 드리겠습니다! 그것이 당신을 위해 효과가 있다면 대답을 받아 들일 것을 잊지 마세요. – TankorSmash

관련 문제