有没有办法提高Python上的url下载速度?
我有一个用VB6编写的程序,它无需尝试就可以吸烟Python。我已经完成了转换,现在正在尝试中,在Python(linux)中,它看起来要慢得多,是它的两倍。甚至该程序的初始版本似乎比在Windows上花费的时间要长。
我试过同时使用urllib(2.7),urllib.request(3.3)和requests。目前,我正在尝试urllib3,而且速度也不快。在Windows上通常需要45分钟,而在linux上要在同一互联网连接的同一台计算机上完成同一任务大约需要2个小时。任务只是搜索互联网并在搜索找到要查找的内容时下载文件...仅是潜在文件名的一部分。
我还要问,由于今天下午到目前为止已发生了不止一次,如何检测110错误代码(连接超时)。我在下面使用的功能无法正常工作,并且仍然终止了该程序。
import urllib3
http = urllib3.PoolManager()
def dl_10(self):
self.NxtNum10 = int(self.HiStr10)
while self.NxtNum10 < int(self.HiStr10)+9999:
url = 'http://www.example.com/videos/encoded/'+str(self.NxtNum10)+'.mp4'
r = http.request('GET', url)
if r.status==404:
self.NxtNum10 +=1
continue
elif r.status==110:
continue
else:
urllib.request.urlretrieve(url,str(self.NxtNum10)+'_1.mp4')
statinfo = os.stat(str(self.NxtNum10)+'_1.mp4')
if statinfo.st_size<10000:
os.remove(str(self.NxtNum10)+'_1.mp4')
else:
self.End10 = self.NxtNum10
self.NxtNum10 +=1
self.counter +=1
self.NxtNum10 = 'FINISHED'
Run Code Online (Sandbox Code Playgroud)
这是通过线程运行的,我认为那不会有任何区别。就像我说的那样,使用urllib(2.7)进行的初始写入也很慢,并且没有使用线程,就像我在Windows上一样,我只运行了10次。
有没有使用Python从互联网上抢东西的更快方法?
小智 5
我发现使用下面的方法而不是直接使用 urlretrieve 会快得多:
resp = urllib2.urlopen(url)
respHtml = resp.read()
binfile = open(filename, "wb")
binfile.write(respHtml)
binfile.close()
Run Code Online (Sandbox Code Playgroud)
直接写入文件。希望对你有帮助
| 归档时间: |
|
| 查看次数: |
3635 次 |
| 最近记录: |