Wielowątkowość dla szybszego pobierania
Jak mogę pobrać wiele linków jednocześnie? Mój poniższy skrypt działa, ale pobiera tylko jeden po drugim i jest bardzo powolny. Nie wiem, jak włączyć wielowątkowość do mojego skryptu.
Skrypt Pythona:
<code>from BeautifulSoup import BeautifulSoup import lxml.html as html import urlparse import os, sys import urllib2 import re print ("downloading and parsing Bibles...") root = html.parse(open('links.html')) for link in root.findall('//a'): url = link.get('href') name = urlparse.urlparse(url).path.split('/')[-1] dirname = urlparse.urlparse(url).path.split('.')[-1] f = urllib2.urlopen(url) s = f.read() if (os.path.isdir(dirname) == 0): os.mkdir(dirname) soup = BeautifulSoup(s) articleTag = soup.html.body.article converted = str(articleTag) full_path = os.path.join(dirname, name) open(full_path, 'w').write(converted) print(name) </code>
Plik HTML o nazwielinks.html
:
<code><a href="http://www.youversion.com/bible/gen.1.nmv-fas">http://www.youversion.com/bible/gen.1.nmv-fas</a> <a href="http://www.youversion.com/bible/gen.2.nmv-fas">http://www.youversion.com/bible/gen.2.nmv-fas</a> <a href="http://www.youversion.com/bible/gen.3.nmv-fas">http://www.youversion.com/bible/gen.3.nmv-fas</a> <a href="http://www.youversion.com/bible/gen.4.nmv-fas">http://www.youversion.com/bible/gen.4.nmv-fas</a> </code>