Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 捕获从某个网站下载文件的请求?_Python_Http_User Interface_Browser_Python 3.x - Fatal编程技术网

Python 捕获从某个网站下载文件的请求?

Python 捕获从某个网站下载文件的请求?,python,http,user-interface,browser,python-3.x,Python,Http,User Interface,Browser,Python 3.x,我正在设计一个程序,当用户点击某个网站的链接时,我希望能够注意到这个程序(从该网站下载并处理一个文件,而不需要用户通过该网站的界面,用浏览器下载文件,并将其输入程序) 我见过类似的程序这样做,但它们的工作原理是将URL中的http://前缀替换为浏览器知道发送给程序的自定义前缀。这在这里不是一个选择;该网站已经存在,我无法控制它 想到的下一个解决方案是浏览器插件,但这是一种非常不雅观的实现方式;如果用户想要使用我的程序,它会强制用户使用某一组浏览器,并且要求我编写并学习如何为我想要支持的任何浏览

我正在设计一个程序,当用户点击某个网站的链接时,我希望能够注意到这个程序(从该网站下载并处理一个文件,而不需要用户通过该网站的界面,用浏览器下载文件,并将其输入程序)

我见过类似的程序这样做,但它们的工作原理是将URL中的
http://
前缀替换为浏览器知道发送给程序的自定义前缀。这在这里不是一个选择;该网站已经存在,我无法控制它

想到的下一个解决方案是浏览器插件,但这是一种非常不雅观的实现方式;如果用户想要使用我的程序,它会强制用户使用某一组浏览器,并且要求我编写并学习如何为我想要支持的任何浏览器编写插件。可能有效的是一个Greasemonkey脚本,它实现了上述解决方案,但这仍然相当粗糙,需要用户下载并安装他并不真正想要的东西

我能想到的第三个解决方案是像一些勒索软件程序那样将程序设置为代理,但这将是一个令人难以置信的令人讨厌的黑客行为。如果出现问题,我希望我的程序不要完全破坏用户的互联网连接,也不希望它一直运行

我能想到的另一个解决办法是更多的妥协;至少在Windows中,用户应该能够单击并将链接拖动到程序窗口中,并让它以这种方式提取链接。这是一种非常优雅的方式,我可能会将其作为一种备用方案来实现,但我不确定它在MacOS下如何工作,而且它也不是我想要的“一键式”解决方案——这个程序的整个要点是,它可以在绝对最小的实际用户交互情况下使用


我打算用Python 3.3实现这一点。有谁有更好的主意吗

如果用户不打算下载和安装任何东西,你认为你的程序究竟会捕获什么?您最好的选择是拖放选项或浏览器插件。您似乎非常关心非侵入性,但随后您尝试随机拦截链接单击,这从一开始就相当具有侵入性。从某种意义上说,你不能两者兼得。@LasseV.Karlsen这不是说不希望用户下载并安装任何东西,而是说不希望用户下载并安装多个东西,特别是当他并不真正想要我的程序必须依赖的东西时。如果下载的用于将.JPGs和.gif分类到不同文件夹的1-kb Python脚本必须下载、安装并运行Photoshop,您是否愿意这样做?@VasiliyFaronov不是随机的;只是拦截非常具体的链接点击。这是相当有侵略性的,但如果做得好,它应该不会令人讨厌,这是我真正想要避免的事情;最终相当于将归档文件提取到文件夹中的过程。这已经是一个相当简单的过程了,尽管如果你一次坐五十次的话,它会让你感到麻烦;关键是它将一个已经非常简单的过程变成了一步一步的过程,因此将链接拖到另一个窗口所需的工作量确实太大了。