【问题标题】:Python download all files from internet address?Python从互联网地址下载所有文件?
【发布时间】:2011-11-28 23:01:12
【问题描述】:

我想从互联网页面下载所有文件,实际上是所有图像文件。 我发现 'urllib' 模块是我需要的。如果您知道文件名,似乎有一种下载文件的方法,但我不知道。

urllib.urlretrieve('http://www.example.com/page', 'myfile.jpg')

有没有一种方法可以从页面下载所有文件并可能返回一个列表?

【问题讨论】:

  • Web scraping with Python 的可能重复项
  • 找不到太多信息。也许是一个小示例脚本?
  • Brock123 你读过上面发布的@Mat 链接吗?它会将您指向BeautifulSoup 用于抓取页面,您可以使用它来查找您希望下载的文件的所有 URL。

标签: python http url urllib


【解决方案1】:

这里有一个小例子可以帮助你开始使用 BeautifulSoup 进行这种练习 - 你给这个脚本一个 URL,它会打印出在 @ 的 src 属性中从该页面引用的图像的 URL以jpgpng结尾的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 指向的每个图像,但是在那个阶段您必须决定如何命名它们以及如何处理下载的图像,这在你的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 2019-05-06
    相关资源
    最近更新 更多