我正在与http://robobrowser.readthedocs.org/en/latest/readme.html http://robobrowser.readthedocs.org/en/latest/readme.html,(一个基于 beautiful soup 和 request 库的新 python 库)在 django 中。我的 Django 应用程序包含:
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)
我想在我的代码中添加代理,但在文档中找不到有关如何执行此操作的参考。是否有可能做到这一点?
EDIT:
根据您的建议,我已将代码更改为
pr="http://10.10.1.10:3128/"
setProxy(pr)
browser = RoboBrowser(history=True)
with:
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
关于下一步该做什么有什么想法吗?我找不到此错误的参考
最近在 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_link
, and submit_form
的方法RoboBrowser
现在接受关键字参数requests.Session.send
。例如:
browser.open('http://stackoverflow.com/', proxies={'http': 'http://your.proxy.com'})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)