2014-06-12 2 views
3

나는 django에서 http://robobrowser.readthedocs.org/en/latest/readme.html (아름다운 수프와 요청 라이브러리를 기반으로하는 새로운 파이썬 라이브러리)를 사용하고 있습니다. 내 장고 응용 프로그램이 포함되어Robobrowser에서 프록시를 사용하는 방법

def index(request):  

    p=str(request.POST.get('p', False)) # p='https://www.yahoo.com/' 

    pr="http://10.10.1.10:3128/" 
    setProxy(pr) 

    browser = RoboBrowser(history=True) 
    postedmessage = browser.open(p) 
    return HttpResponse(postedmessage) 

내 코드에 프록시를 추가하고 싶습니다하지만이 작업을 수행하는 방법에 대한 문서에 대한 참조를 찾을 수 없습니다. 이것을 할 수 있습니까?

편집 : 내가 지금 받고 있어요

def setProxy(pr): 
    import os 
    os.environ['HTTP_PROXY'] = pr 
    return 

:

Django Version: 1.6.4 
Exception Type: LocationParseError 
Exception Value:  
Failed to parse: Failed to parse: 10.10.1.10:3128 

어떤을

은 추천 내가 함께

pr="http://10.10.1.10:3128/" 
    setProxy(pr) 
    browser = RoboBrowser(history=True) 

에 코드를 변경 한 다음 다음에해야 할 일에 대한 아이디어? 이 오류에 대한 참조를 찾을 수 없습니다.

답변

2

RoboBrowser가 요청 라이브러리를 사용하기 때문에 HTTP_PROXYHTTPS_PROXY 환경 변수를 설정하여 request docs에서 언급 한대로 프록시를 설정하려고 시도 할 수 있습니다.

+0

편집 – user61629

+0

프록시 값 또는으로 "10.10.1.10:3128"를 사용해보십시오 참조하십시오에 "http : // 사용자 : [email protected] : 3128 /" – arocks

+0

그것은 밝혀졌다에게 내가 가지고있는 프록시 문자열 끝에 추가 문자가 거의 없습니다. 내가 그들을 제거했을 때 그것은 pr = "http://10.10.1.10:3128/"을 사용하기 시작했다. 도움을 많이 주셔서 감사합니다. - 빌 – user61629

9

RoboBrowser의 최근 API 정리 후 프록시를 제어하는 ​​데 비교적 간단한 방법이 두 가지 있습니다. 먼저 요청 세션에서 프록시를 구성한 다음 해당 세션을 브라우저에 전달할 수 있습니다. 이렇게하면 브라우저를 통해 만들어진 모든 요청에 ​​프록시가 적용됩니다.

from requests import Session 
from robobrowser import RoboBrowser 

session = Session() 
session.proxies = {'http': 'http://my.proxy.com/'} 
browser = RoboBrowser(session=session) 

둘째, 프록시는 요청별로 설정할 수 있습니다. open, follow_linksubmit_form 방법이 RoboBrowser 인 경우 requests.Session.send에 대한 키워드 인수를 사용할 수 있습니다. 예를 들어 :

browser.open('http://stackoverflow.com/', proxies={'http': 'http://your.proxy.com'}) 
+0

감사합니다, 많이 고맙습니다 - 빌 – user61629

+0

방금 ​​robobrowser가 귀하의 프로젝트임을 깨달았습니다. 그것을 만들어 주셔서 감사합니다! - Bill – user61629

+0

두 번째 질문이 있으시면 http://stackoverflow.com/questions/25067874/how-to-submit-a-form-with-a-get-action-using-robobrowser에 새 질문이 있습니다. – user61629

관련 문제