python/Django中的Web代理?

2024-10-04 05:27:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一个代理,作为中间人来获取图像。例如,我的服务器请求domain1.com/?url=domain2.com/image.png和domain1.com服务器将通过domain1.com服务器在domain2.com/image.png上响应数据。

本质上,我想把我要获取的URL传递给代理服务器,并让代理服务器用该资源响应。

有什么建议可以从哪里着手?

我需要一些非常容易使用或实现的东西,因为我是这方面的初学者。

我在python和/或django中找到的大多数解决方案都将代理作为“翻译程序”,即domain1.com/image.png转换为domain2.com/image.png,这显然是不同的。

我目前有以下代码,但获取图像会导致数据混乱:

import httplib2
from django.conf.urls.defaults import *
from django.http import HttpResponse

def proxy(request, url):
    conn = httplib2.Http()
    if request.method == "GET":
        url = request.GET['url']
        resp, content = conn.request(url, request.method)
        return HttpResponse(content)

Tags: 数据django图像imageimport服务器comurl
3条回答

如果要获取并返回的文件是图像,则需要更改HttpResponse Objectmimetype

使用mechanize,它允许您选择一个代理并像浏览器一样工作,这样就很容易更改用户代理、在历史中来回切换以及处理身份验证或cookies。

老问题,但对于未来的谷歌用户来说,我想这就是你想要的:

# proxies the google logo
def test(request):
    url = "http://www.google.com/logos/classicplus.png"
    req = urllib2.Request(url)
    response = urllib2.urlopen(req)
    return HttpResponse(response.read(), mimetype="image/png")

相关问题 更多 >