Python3.x爬虫下载网页图片的实例讲解
作者:hanchaobiao 发布时间:2022-11-25 23:24:07
标签:爬虫,下载,图片,Python
一、选取网址进行爬虫
本次我们选取pixabay图片网站
url=https://pixabay.com/
二、选择图片右键选择查看元素来寻找图片链接的规则
通过查看多个图片路径我们发现取src路径都含有 https://cdn.pixabay.com/photo/ 公共部分且图片格式都为.jpg 因此正则表达式为
re.compile(r'^https://cdn.pixabay.com/photo/.*?jpg$')
通过以上的分析我们可以开始写程序了
#-*- coding:utf-8 -*-
import re
import requests
import os
from bs4 import BeautifulSoup
url = 'https://pixabay.com/'
html = requests.get(url).text #获取网页内容
print(html)
# 这里由于有些图片可能存在网址打不开的情况,加个5秒超时控制。
#data-objurl="http://pic38.nipic.com/20140218/17995031_091821599000_2.jpg"获取这种类型链接
soup = BeautifulSoup(html,'html.parser',from_encoding='utf-8')
#^abc.*?qwe$
pic_url = soup.find_all('img',src=re.compile(r'^https://cdn.pixabay.com/photo/.*?jpg$'))
#pic_url = pic_node.get_text()
#pic_url = re.findall('"https://cdn.pixabay.com/photo/""(.*?)",',html,re.S)
print(pic_url)
i = 0
#判断image文件夹是否存在,不存在则创建
if not os.path.exists('image'):
os.makedirs('image')
for url in pic_url:
img = url['src']
try:
pic = requests.get(img,timeout=5) #超时异常判断 5秒超时
except requests.exceptions.ConnectionError:
print('当前图片无法下载')
continue
file_name = "image/"+str(i)+".jpg" #拼接图片名
print(file_name)
#将图片存入本地
fp = open(file_name,'wb')
fp.write(pic.content) #写入图片
fp.close()
i+=1
代码是不是很简单呢 如果你想修改地址 取爬取别的网站 请注意分析下载图片路径的共性 并设计合理的正则表达式,否则是无法获取到图片路径的
执行过程截图:
来源:https://blog.csdn.net/hanchaobiao/article/details/72873142


猜你喜欢
- 什么是自省?在日常生活中,自省(introspection)是一种自我检查行为。在计算机编程中,自省是指这种能力:检查某些事物以确定它是什么
- 本文实例讲述了JS实现求5的阶乘运算操作。分享给大家供大家参考,具体如下:方案一:利用while循环function factorial(n
- 前言为了保证数据的一致完整性,任何一个数据库都存在锁定机制。锁定机制的优劣直接应想到一个数据库系统的并发处理能力和性能,所以锁定机制的实现也
- 这篇论坛文章(赛迪网技术社区)主要介绍了一种简单的MySQL数据库安装方法,详细内容请大家参考下文:虽然安装MySQL数据库的文章很多,但是
- 1. void ellipse(InputOutputArray img, Po
- 问题一般在服务器上进行环境安装的时候有多种方式,比如docker, conda等。conda肯使用起来更加简便,docker更适合服务器部署
- 本文实例讲述了Python基于numpy灵活定义神经网络结构的方法。分享给大家供大家参考,具体如下:用numpy可以灵活定义神经网络结构,还
- 我是以Python开门的,我还是觉得Python也可以进行地形三维可视化,当然这里需要借助第三方库,so,我就来介绍:Python一个很重要
- argparse模块用法一、 概念argsparse是python的命令行解析的标准模块,内置于python,不需要安装。这个库可以让我们直
- 首先说明,Supervisor 只能安装在 Python 2.x 环境中!但是基本上所有的 Linux 都同时预装了 Python 2.x
- IIS报错:msxml3.dll (0x80070005)拒绝访问解决办法:Set objSrvHTTP =
- 使用opencv对图像进行编码,一方面是图像二进制传输的需要,另一方面对图像压缩。以jpeg压缩为例:1、转为二进制编码img = cv2.
- 本文实例为大家分享了python实现五子棋游戏的具体代码,供大家参考,具体内容如下先上代码 #调用pygame库import py
- 在应用程序的开发中,有些输入信息是动态的,比如我们要注册一个员工的工作经历,比如下图如果做成死的,只能填写三个,如果是四个呢?或者更多呢,那
- 本文以Python开发为例来进行说明,环境说明:(1) Python 3.x(我用的版本是 3.9 版本)(2)IDE开具 PyCharm(
- 目录技术背景打格点算法实现打格点算法加速总结概要技术背景在数学和物理学领域,总是充满了各种连续的函数模型。而当我们用现代计算机的技术去处理这
- Macromedia Dreamweaver MX 2004提供了更多功能强劲的可视化设计工具、应用开
- 这是base2的作者Dean Edwards 2007年3月份的一篇文章。最近正在折腾JavaScript库,感觉Dean给出的这些规则很中
- 项目地址:https://github.com/Henryhaohao/Bilibili_video_download介绍对于单P视频:直接
- 一、PL/SQL出现的目的 结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语