How can I make this script grab the “nmv-fas” from the link name and create a directory with that name then place all the files that are downloaded in that directory.
all.html:
<a href="http://www.youversion.com/bible/gen.45.nmv-fas">http://www.youversion.com/bible/gen.45.nmv-fas</a>
<a href="http://www.youversion.com/bible/gen.46.nmv-fas">http://www.youversion.com/bible/gen.46.nmv-fas</a>
<a href="http://www.youversion.com/bible/gen.47.nmv-fas">http://www.youversion.com/bible/gen.47.nmv-fas</a>
<a href="http://www.youversion.com/bible/gen.48.nmv-fas">http://www.youversion.com/bible/gen.48.nmv-fas</a>
<a href="http://www.youversion.com/bible/gen.49.nmv-fas">http://www.youversion.com/bible/gen.49.nmv-fas</a>
<a href="http://www.youversion.com/bible/gen.50.nmv-fas">http://www.youversion.com/bible/gen.50.nmv-fas</a>
<a href="http://www.youversion.com/bible/exod.1.nmv-fas">http://www.youversion.com/bible/exod.1.nmv-fas</a>
<a href="http://www.youversion.com/bible/exod.2.nmv-fas">http://www.youversion.com/bible/exod.2.nmv-fas</a>
<a href="http://www.youversion.com/bible/exod.3.nmv-fas">http://www.youversion.com/bible/exod.3.nmv-fas</a>
files saved in folder named:
nmv-fas
python:
import lxml.html as html
import urllib
import urlparse
from BeautifulSoup import BeautifulSoup
import re
root = html.parse(open('all.html'))
for link in root.findall('//a'):
url = link.get('href')
name = urlparse.urlparse(url).path.split('/')[-1]
f = urllib.urlopen(url)
s = f.read()
f.close()
soup = BeautifulSoup(s)
articleTag = soup.html.body.article
converted = str(articleTag)
open(name, 'w').write(converted)
You could use the
lxmlmodule to parse links out of the file, and then useurllibto download each link. Reading the links might look like this:You can download a link to a file using
urllib.urlopen:Put these together and you should have something similar to what you want.