Python 将HTTP请求的输出发送到另一个目标

Python 将HTTP请求的输出发送到另一个目标,python,http,httprequest,Python,Http,Httprequest,我有一个关于HTTP请求的问题。我甚至不知道这是否可行,但我正试图找到一种方法来实现这一点 在Python中检查此函数: def send_this(url): this_browser=mechanize.Browser() this_browser.set_handle_robots(False) this_browser.addheaders=[('User-agent','Chrome')] test_output=th

我有一个关于HTTP请求的问题。我甚至不知道这是否可行,但我正试图找到一种方法来实现这一点

在Python中检查此函数:

def send_this(url):

        this_browser=mechanize.Browser()
        this_browser.set_handle_robots(False)
        this_browser.addheaders=[('User-agent','Chrome')]

        test_output=this_browser.open(url).read().decode("UTF-8")
        return test_output
因此,当我从我的机器上运行它时,很明显,值被返回并写入变量
translated

我想知道的是,有没有一种方法可以将请求发送到URL,并将输出(
this\u browser.open(URL).read().decode(“UTF-8”)
)发送到另一个目的地,而不是开始写入此变量,而不返回起始地

这是我想要达到的目标的图示

我的机器
和另一台服务器都在我的控制之下。请求发送到的服务器不可用

  • 首先,这是否可能
  • 第二,我应该研究哪些实现/技术来实现这一点

您不能让“互联网”服务器将其回复发送到其他地方,但您可以读取回复并通过第二个http连接将其发送到您的服务器,使用相应的接收器脚本读取您发送的内容并以任何方式处理。

您可以在这些机器上的某个端口监听并使用TCP/IP套接字,也可以通过PHP脚本执行此操作,PHP脚本读取URL引用的GET(或POST)数据并将其写入文本文件/XML,您当前在目的地运行的程序可以识别数据,以便进一步处理。

不,这是不可能的。至少不在HTTP的范围内

与FTP不同,FTP为传输内容打开单独的数据通道(因此可以这样做),HTTP通过单个TCP连接完成所有内容。因此,服务器将发送响应的唯一位置是发送请求的机器

您可以做的是连接到“另一台服务器”,并告诉它启动HTTP请求(从而获得响应)。

您可以这样做,以便它将响应发送给它

你可以

正如您可能已经猜到的,更容易:


或者只是从“另一台服务器”向“internet”服务器发送请求直接。

您可以使用scapy生成页面请求,并将发起人详细信息设置为另一台机器的详细信息-这将导致数据被发送到另一台机器,但对于网页请求,另一台机器可能不会更新页面,因为它不需要任何数据没有任何要求


您最好在另一台带有pyro的机器上使用python来控制网页显示,您的第一台机器可以要求远程机器请求并显示所需的页面。

相关:这不是唯一的,但肯定是最简单、最直接的。理论上,如果我能在另一台机器上专门为这类请求监听一小段代码,那会起作用吗?这就是pyro为您所做的-它监听远程执行请求,并在本地机器上运行您选择的任何python代码,并将结果返回给发起人。你可以自己滚,但当它为你完成时。。。。