for x in range(1, 100): # в Py2 вроде xrange используется
url=urllib.urlopen('www.ya.ru')
print(url.read().splitlines())
import os
import urllib
import workerpool
urls = ['http://example.com/1','http://example.com/2']
class DownloadJob(workerpool.Job):
def __init__(self, url):
self.url = url # The url we'll need to download when the job runs
def run(self):
save_to = os.path.basename(self.url)
urllib.urlretrieve(self.url, save_to)
pool = workerpool.WorkerPool(size=5)
for url in urls:
job = DownloadJob(url.strip())
pool.put(job)
pool.shutdown()
pool.wait()
# -*- coding: utf-8 -*-
from threading import Thread
import urllib2
class GetPageThread(Thread):
def __init__(self, url):
self.url = url
self.body = None
super(GetPageThread, self).__init__()
def run(self):
try:
#для некоторых ресурсов доступ будет закрыт
#без user-agent(довольно часто)
req = urllib2.Request(self.url, headers={'User-Agent' : 'Mozilla/5.0'})
self.body = urllib2.urlopen(req).read()
except:
self.body = 'Некорректный адрес'
def body_thread(url):
return GetPageThread(url)
def main():
url = 'http://ya.ru'
#создание потоков
threads = [body_thread(url) for i in range(100)]
#запуск потоков
for thread in threads:
thread.start()
#объединение с основным
for thread in threads:
thread.join()
#что хотелось бы с этим сделать
for thread in threads:
print thread.body.splitlines()
if __name__ == '__main__':
main()