如何通过Python多线程提高性能

时间:2010-06-25 18:26:01

标签: python multithreading

我是Python和多线程的新手,所以请耐心等待。

我正在编写一个脚本来通过Web of Trust处理列表中的域名,这是一种在“可信度”范围内对网站进行排名的服务,并将其写入CSV。遗憾的是,Web of Trust的服务器可能需要很长时间才能响应,处理100k域可能需要数小时。

到目前为止,我对多线程的尝试一直令人失望 - 尝试从this answer修改脚本会产生线程错误,我相信因为某些线程需要很长时间才能解决。

这是我未经修改的脚本。有人可以帮助我多线程,或者指向一个好的多线程资源吗?提前谢谢。

import urllib
import re

text = open("top100k", "r")
text = text.read()
text = re.split("\n+", text)

out = open('output.csv', 'w')

for element in text:
        try:
                content = urllib.urlopen("http://api.mywot.com/0.4/public_query2?target=" + element)
                content = content.read()
                content = content[content.index('<application name="0" r="'):content.index('" c')]
                content = element + "," + content[25] + content[26] + "\n"
                out.write(content)
        except:
                pass

1 个答案:

答案 0 :(得分:1)

通过WoT API文档的快速扫描显示,除了您正在使用的public_query2请求之外,还有一个public_query_json请求,允许您批量获取最多100个数据。我建议您在开始之前使用它并行地向他们的服务器充斥许多请求。