urllib爬取图片

水深无声 2023-10-09 21:41 135阅读 0赞

使用 urllib 库来爬取图片

  1. import urllib.request
  2. # 图片的 URL 链接
  3. image_url = "http://img.netbian.com/file/2023/0415/235643ofSA0.jpg"
  4. # 获取图片并保存到指定路径
  5. urllib.request.urlretrieve(image_url, "image.jpg")

这段代码中,首先指定了要爬取的图片的 URL 链接,然后使用 urllib.request.urlretrieve() 函数将图片下载到指定的路径。你可以将 image_url 替换为实际的图片 URL,将 "image.jpg" 替换为保存图片的路径和文件名,如果路径不存在,系统会自动创建相应的文件夹。

需要注意的是,使用 urllib 库下载图片时,需要确保图片 URL 的有效性,否则程序可能会因为无法连接或者图片不存在等原因失败。同时,一些网站可能会针对爬虫做出限制,需要根据具体情况采取相应措施。

使用 urllib 库爬取多个图片可以通过循环遍历图片链接来实现,具体步骤如下:

  1. 导入 urllib.request 模块。
  2. 定义图片链接的列表或从网页中爬取图片链接并保存到列表中。
  3. 使用循环遍历列表中的图片链接。
  4. 使用 urllib.request.urlretrieve() 方法下载图片并保存到本地文件。

下面是示例代码:

  1. import urllib.request
  2. # 图片链接列表
  3. img_urls = [
  4. 'http://img.netbian.com/file/2023/0414/small234647agSR11681487207.jpg',
  5. 'http://img.netbian.com/file/2023/0415/small2350329sMTe1681573832.jpg',
  6. 'http://img.netbian.com/file/2023/0414/small233653zJreD1681486613.jpg'
  7. ]
  8. # 循环遍历图片链接并下载保存
  9. for img_url in img_urls:
  10. # 截取图片链接中的文件名作为本地文件名
  11. file_name = img_url.split('/')[-1]
  12. # 下载图片并保存到本地文件
  13. urllib.request.urlretrieve(img_url, file_name)

注:通过以上代码可以爬取图片,但是由于爬取网站图片可能存在版权问题,请遵守相关法律规定,不要非法爬取、使用图片。

#

可以使用urllib库中的urlopen函数获取网页的源代码,然后使用正则表达式来匹配其中的图片链接,最后再使用urllib库中的urlretrieve函数下载图片。

下面是一个示例代码,它可以获取指定URL的页面源代码,并下载其中的所有图片到本地。

  1. import re
  2. import urllib.request
  3. # 获取页面源代码
  4. response = urllib.request.urlopen('http://www.netbian.com/')
  5. html = response.read()
  6. # 使用正则表达式匹配图片链接
  7. img_pattern = re.compile('img .*?src="(.*?)"')
  8. img_urls = re.findall(img_pattern, str(html))
  9. # 下载图片并保存到本地
  10. for img_url in img_urls:
  11. urllib.request.urlretrieve(img_url, img_url.split('/')[-1])

在上面的代码中,我们使用了正则表达式匹配了所有img标签中的src属性值,然后使用urlretrieve来将每张图片下载下来并保存在当前目录下。

发表评论

表情:
评论列表 (有 0 条评论,135人围观)

还没有评论,来说两句吧...

相关阅读