【问题标题】:fast download xml file from server python从服务器python快速下载xml文件
【发布时间】:2016-03-25 22:03:26
【问题描述】:

我正在从 clean-mx 下载大型网络钓鱼/病毒站点数据库

钓鱼数据库 = http://support.clean-mx.de/clean-mx/xmlphishing.php

病毒库 = http://support.clean-mx.de/clean-mx/xmlviruses.php

现在的问题是这些 xml 文件的大小约为每个 +30Mb,下载它们大约需要 1 分钟,我需要更快地下载它们... 我使用urllib.urlretrieve下载它们。

我需要这些文件来构建包含这些数据库中的 url 的 xml 数据库,我尝试阅读它们,希望它应该比使用urllib.urlopen 下载它们更快,但下载它们甚至更慢。

您有什么想法可以使用这些文件(下载或读取)以更快的性能构建我的数据库吗?

注意:只需要使用这些文件,我已经编写了快速构建数据库的代码

【问题讨论】:

  • 你提到的网站需要登录,所以其他人无法测试下载速度。您是在网络浏览器中还是通过wgetcurl 等命令行工具获得更快的下载?可能是服务器只是限制了下载速度。
  • 你不需要登录,我下载这个文件没有登录网站...看看support.clean-mx.de/clean-mx/viruses.phpsupport.clean-mx.de/clean-mx/phishing.php我只是添加xml并且网站返回xml输出(看看行“与 xml 输出相同的查询”)我也通过 wget 尝试过,它与 urllib.urlretrieve 相同
  • 为什么需要更快地下载它们?下载一次就足够了(取决于您的用例)。也许有另一种方法而不是经常下载文件?
  • 每小时我删除它们并再次下载它们以进行更新(它们每半小时更新一次数据库)

标签: php python xml


【解决方案1】:

我尝试在 OS X 和 Linux(在 VM 中运行)中通过 Firefox 下载病毒 XML,并使用出色的 requests 模块(我更喜欢 urllib),所有方法都花费了很长时间下载 47M 文件 - 事实上,一些进程冻结或崩溃。我有一个 60 Mbit/s 的互联网连接,从不受限制的服务器下载类似大小的文件通常只需要 10-15 秒。因此,我怀疑您的结果不会有太大改善,因为这似乎是服务器问题。我建议与网站所有者联系,看看他们是否愿意与您一起诊断连接问题。

编辑

好吧,这很奇怪。我重新启动了我的 Linux VM 并在终端中运行了以下命令:

import requests
url = "http://support.clean-mx.de/clean-mx/xmlviruses.php?"
r = requests.get(url).content
print(r)

下载在不到 15 秒内完成。所以,我完全不确定发生了什么......

【讨论】:

  • 我试过了,现在效果很好!您对请求的看法是正确的...他们的模块中有一些魔力谢谢!
  • @johndoe_asking 不确定为什么它可以工作,但我很高兴你让它工作!
猜你喜欢
  • 2011-05-18
  • 2012-07-30
  • 1970-01-01
  • 2021-07-01
  • 2012-12-10
  • 1970-01-01
  • 2019-08-05
  • 2021-09-28
相关资源
最近更新 更多