Python从互联网地址下载所有文件?

标签 python http url urllib

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

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

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

最佳答案

这是一个让您开始使用 BeautifulSoup 进行此类练习的小示例 - 您为该脚本提供一个 URL,它将打印出从 src 中该页面引用的图像的 URL。 img 的属性以 jpg 结尾的标签或 png :

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 指向的每个图像,但在那个阶段你必须决定如何命名它们以及如何处理下载的图像,这在你的问题中没有指定。

关于Python从互联网地址下载所有文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7618993/

相关文章:

javascript - 如何监听url的变化(Fragment identifier - the anchor part of a URL)

python - 如何从 pandas 数据框列的元组中的一个位置获取所有值?

Python:使用 sh 运行 docker 容器并处理 UTF-8 解码错误

java - 从 URL 获取内容/字符串

java - HttpURLConnection 握手和请求发送

java - 为什么我的 HttpClient 类卡住某些 URL

html - 将鼠标悬停在(可能?)

python - 如何获取通过 url 传递的列表?

python - 如何在odoo 9中逐行读取txt文件

python - 虚拟机如何渲染GUI?