title: Multithreading for faster downloading
body: <p>How can I download multiple links simultaneously? My script below works but only downloads one at a time and it is extremely slow. I can't  figure out how to incorporate multithreading in my script.</p>
  
  <p>The Python script:</p>
  
  <pre><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></pre>
  
  <p>The HTML file called <code>links.html</code>:</p>
  
  <pre><code>&lt;a href="http://www.youversion.com/bible/gen.1.nmv-fas"&gt;http://www.youversion.com/bible/gen.1.nmv-fas&lt;/a&gt;
  
  &lt;a href="http://www.youversion.com/bible/gen.2.nmv-fas"&gt;http://www.youversion.com/bible/gen.2.nmv-fas&lt;/a&gt;
  
  &lt;a href="http://www.youversion.com/bible/gen.3.nmv-fas"&gt;http://www.youversion.com/bible/gen.3.nmv-fas&lt;/a&gt;
  
  &lt;a href="http://www.youversion.com/bible/gen.4.nmv-fas"&gt;http://www.youversion.com/bible/gen.4.nmv-fas&lt;/a&gt;
  </code></pre>