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

发布于 2024-12-07 23:07:39 字数 219 浏览 1 评论 0原文

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

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

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

I want to download all files from an internet page, actually all the image files.
I found the 'urllib' module to be what I need. There seems to be a method to download a file, if you know the filename, but I don't.

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

Is there a method to download all the files from the page and maybe return a list?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

若水般的淡然安静女子 2024-12-14 23:07:39

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

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)

然后您可以使用 urllib.urlretrieve 下载每个指向的图像full_url,但在那个阶段,您必须决定如何命名它们以及如何处理下载的图像,这在您的问题中没有指定。

)}): full_url = urlparse.urljoin(url, i['src']) print "image URL: ", full_url

然后您可以使用 urllib.urlretrieve 下载每个指向的图像full_url,但在那个阶段,您必须决定如何命名它们以及如何处理下载的图像,这在您的问题中没有指定。

Here's a little example to get you started with using BeautifulSoup for this kind of exercise - you give this script a URL, and it will print out the URLs of images that are referenced from that page in the src attribute of img tags that end with jpg or 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)

Then you can use urllib.urlretrieve to download each of the images pointed to by full_url, but at that stage you have to decide how to name them and what to do with the downloaded images, which isn't specified in your question.

)}): full_url = urlparse.urljoin(url, i['src']) print "image URL: ", full_url

Then you can use urllib.urlretrieve to download each of the images pointed to by full_url, but at that stage you have to decide how to name them and what to do with the downloaded images, which isn't specified in your question.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文