Python 下载图片的三种方法

import os
os.makedirs('./image/', exist_ok=True)
IMAGE_URL = "http://image.nationalgeographic.com.cn/2017/1122/20171122113404332.jpg"
 
def urllib_download():
    from urllib.request import urlretrieve
    urlretrieve(IMAGE_URL, './image/img1.png')     
 
def request_download():
    import requests
    r = requests.get(IMAGE_URL)
    with open('./image/img2.png', 'wb') as f:
        f.write(r.content)                      
 
def chunk_download():
    import requests
    r = requests.get(IMAGE_URL, stream=True)    
    with open('./image/img3.png', 'wb') as f:
        for chunk in r.iter_content(chunk_size=32):
            f.write(chunk)
 
urllib_download()
print('download img1')
request_download()
print('download img2')
chunk_download()
print('download img3')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python是一种功能强大的编程语言,可以用于编写爬虫程序来获取网页上的照片并将其下载到本地图库中。 首先,我们需要使用Python的爬虫库(如Requests或Scrapy)发送HTTP请求并获取网页的内容。找到包含照片的元素,通常是<img>标签,并从中提取出照片的URL。 接下来,我们可以使用Python的文件操作功能来创建一个本地图库文件夹,并在其中保存下载的照片。可以使用os模块来创建文件夹,然后使用urllib库中的urlretrieve()函数将照片保存到文件夹中。 以下是一个简单的代码示例: ```python import os import requests def download_photos(url, save_path): response = requests.get(url) if response.status_code == 200: # 创建本地图库文件夹 os.makedirs(save_path, exist_ok=True) # 提取照片的文件名 file_name = url.split('/')[-1] save_file_path = os.path.join(save_path, file_name) # 保存照片到本地 with open(save_file_path, 'wb') as f: f.write(response.content) print(f"{url} 下载完成!") # 照片URL photo_url = "http://example.com/photo.jpg" # 图库保存路径 gallery_path = "/path/to/gallery" # 下载照片并保存到图库中 download_photos(photo_url, gallery_path) ``` 通过调用`download_photos()`函数,我们可以将照片下载到指定的本地图库文件夹中。这个函数可以根据需要调用多次,以获取并保存更多的照片。 需要注意的是,爬取照片时应遵守法律法规和网站的规定,确保获取的照片是合法的和被允许使用的。 ### 回答2: Python爬虫是一种可以自动化从网站获取数据的程序。要爬取照片并下载为图库,我们可以使用Python爬虫库如Requests和BeautifulSoup来获取网页内容,并使用正则表达式或XPath来提取图片链接。 首先,我们需要确定要爬取的网站和目标图片的位置。然后,使用Requests库发送HTTP请求,获取网页的HTML源代码。 接下来,使用BeautifulSoup库解析HTML源代码,并根据图片链接的特征使用正则表达式或XPath提取出所有图片链接。然后,可以使用Python的内置模块urllib或第三方库如wget将图片链接保存到本地文件夹。 为了创建一个图库,可以为每个照片创建一个文件名,如根据图片链接或图片特征命名。然后,可以将下载下来的图片保存到图库文件夹中。 如果有多个网页需要爬取,可以使用循环来迭代爬取每个网页,并将所有的图片保存到同一个图库文件夹。 爬取照片并下载为图库的Python程序示例代码如下: ```python import requests import re import os import urllib from bs4 import BeautifulSoup # 创建图库文件夹 if not os.path.exists('图库'): os.makedirs('图库') # 目标网站URL url = 'https://example.com' # 发送HTTP GET请求,获取网页内容 response = requests.get(url) # 解析HTML源代码 soup = BeautifulSoup(response.text, 'html.parser') # 提取图片链接 img_links = soup.find_all('img') # 循环爬取每个图片链接 for img_link in img_links: # 提取图片链接的URL img_url = img_link.get('src') # 下载图片并保存到图库文件夹 urllib.request.urlretrieve(img_url, os.path.join('图库', os.path.basename(img_url))) print('照片爬取完成,已保存到图库文件夹。') ``` 以上代码是一个简单的示例,可以根据需要进行修改和扩展。注意,爬取网站的合法性和尊重隐私是非常重要的。请确保遵守相关法律法规和网站的使用规定。 ### 回答3: Python爬虫是一种自动化程序,可以用来获取网页上的数据。对于照片爬取和下载为图库,可以采取以下步骤: 1. 导入必要的库,如requests、beautifulsoup等。这些库可以用来发送HTTP请求、解析HTML等。 2. 使用Python编写爬虫程序,首先需要确定目标网站,并发送HTTP请求获取网页的内容。 3. 使用beautifulsoup库对网页进行解析,找到包含照片的HTML标签或CSS选择器。 4. 通过对爬取到的HTML内容进行解析,提取出照片的URL链接。 5. 使用Python的requests库下载照片,保存到本地图库文件夹中。 6. 可以通过循环迭代来爬取多个页面上的照片。 以下是一个简单的示例代码: ```python import requests from bs4 import BeautifulSoup import os def download_photos(url, save_dir): response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') photo_elements = soup.find_all('img') # 根据实际网页结构选择合适的标签或选择器 if not os.path.exists(save_dir): os.makedirs(save_dir) for photo in photo_elements: photo_url = photo['src'] # 获取照片的URL链接 file_name = photo_url.split('/')[-1] # 提取文件名 file_path = os.path.join(save_dir, file_name) # 组装文件路径 # 下载照片 with open(file_path, 'wb') as f: response = requests.get(photo_url) f.write(response.content) if __name__ == '__main__': url = 'https://example.com' # 目标网站的URL save_dir = 'photo_gallery' # 图库保存的目录 download_photos(url, save_dir) ``` 以上代码只是一个简单示例,具体的实现方法还需要根据目标网站的结构和需求进行调整。另外,在爬取网站时要遵循相关法律法规和网站的规定,避免侵犯他人的权益和违反网站的使用条款。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值