【问题标题】:Python download all files from internet address?Python从互联网地址下载所有文件?
【发布时间】:2011-11-28 23:01:12
【问题描述】:
我想从互联网页面下载所有文件,实际上是所有图像文件。
我发现 'urllib' 模块是我需要的。如果您知道文件名,似乎有一种下载文件的方法,但我不知道。
urllib.urlretrieve('http://www.example.com/page', 'myfile.jpg')
有没有一种方法可以从页面下载所有文件并可能返回一个列表?
【问题讨论】:
-
-
-
Brock123 你读过上面发布的@Mat 链接吗?它会将您指向BeautifulSoup 用于抓取页面,您可以使用它来查找您希望下载的文件的所有 URL。
标签:
python
http
url
urllib
【解决方案1】:
这里有一个小例子可以帮助你开始使用 BeautifulSoup 进行这种练习 - 你给这个脚本一个 URL,它会打印出在 @ 的 src 属性中从该页面引用的图像的 URL以jpg或png结尾的987654322@标签:
import sys, urllib, re, urlparse
from BeautifulSoup import BeautifulSoup
if not len(sys.argv) == 2:
print >> sys.stderr, "Usage: %s <URL>" % (sys.argv[0],)
sys.exit(1)
url = sys.argv[1]
f = urllib.urlopen(url)
soup = BeautifulSoup(f)
for i in soup.findAll('img', attrs={'src': re.compile('(?i)(jpg|png)$')}):
full_url = urlparse.urljoin(url, i['src'])
print "image URL: ", full_url
然后您可以使用urllib.urlretrieve 下载full_url 指向的每个图像,但是在那个阶段您必须决定如何命名它们以及如何处理下载的图像,这在你的问题。