大家好,我是好学的小师弟,今天来和大家分享下,如何通过爬虫,爬取百度图片,并下载保存到本地。

思路:首先找到你想要爬取图片的页面url,copy下来(本文使用的是在百度图片上爬取想要的照片,你想要在其他图片网站上爬取也是一样的做法,大同小异),通过requests库发起get请求,把页面的text正文打印出来;然后按f12,找到图片的源地址,找到其中的命名规律;接着再用re.findall 正则表达式,找出整个页面中所有符合条件的图片源地址,接着在用一次requests.get请求这些图片源地址,这样就可以得到完整的图片大图了。然后我们通过for in 遍历这些图片大图,并把他们依次存放到本地中。如果不知道本地有没有事先设置好存放的目录,我们可以在代码中if语句判断下,没有的话,自动建立一个。这里注意要给存放的图片文件名设置好,不然会报错的。

具体操作步骤:

步骤1:打开想要爬取的图片页面网址,这里我们是想要爬取【百度图片】里的关于【头像】的照片,输入关键词【头像】即可

把下图这个页面的url全部coopy下来

具体代码

import re  #为了正则表达式
import requests#请求网页url
import os #操作系统
num=0    #给图片加数字
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36','Cookie':'  ',#这里看你们的浏览器里有没有,你先登录百度账号,才会有的'Accept':'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8','Accept-Encoding':'gzip, deflate, br','Accept-Language':'zh-CN,zh;q=0.9'}  #请求头,谷歌浏览器里面有,具体在哪里找到详见我上一条csdn博客
#图片页面的url
url='https://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&sf=1&fmq=&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&fm=index&pos=history&word=%E5%A4%B4%E5%83%8F'
#通过requests库请求到了页面
html=requests.get(url,headers=header)
#防止乱码
html.encoding='utf8'
#打印页面出来看看
print(html.text)

步骤2:判断系统本地是否创建了存储图片的目录,如果没有,系统自建一个

pachong_picture_path='D:\\PythonCodes\\自己写的爬虫爬下来的图片'#查找路径里是否有这个目录
if not os.path.exists(pachong_picture_path):os.mkdir(pachong_picture_path)     #判断,如果没有,就自己建一个

步骤3:正则表达式,筛选想要的图片源地址

res=re.findall('"objURL":"(.*?)"',html)  #正则表达式,筛选出html页面中符合条件的图片源代码地址url

步骤4:for in 遍历,把图片打印到想要保存的本地目录中


for i in res:   #遍历num=num+1       #数字加1,这样图片名字就不会重复了picture=requests.get(i)       #得到每一张图片的大图file_name='D:\\PythonCodes\\自己写的爬虫爬下来的图片\\头像照片'+str(num)+".jpg"   #给下载下来的图片命名。加数字,是为了名字不重复f=open(file_name,"wb")    #以二进制写入的方式打开图片f.write(picture.content)   # 往图片里写入爬下来的图片内容,content是写入内容的意思print(i)    #看看有哪些url
f.close()      #结束f文件操作

完整代码

import re  #为了正则表达式
import requests#请求网页url
import os #操作系统
num=0    #给图片名字加数字
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36','Cookie':'',#这里需要大家根据自己的浏览器情况自行填写'Accept':'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8','Accept-Encoding':'gzip, deflate, br','Accept-Language':'zh-CN,zh;q=0.9'}  #请求头,谷歌浏览器里面有,具体在哪里找到详见我上一条csdn博客
#图片页面的url
url='https://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&sf=1&fmq=&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&fm=index&pos=history&word=%E5%A4%B4%E5%83%8F'
#通过requests库请求到了页面
html=requests.get(url,headers=header)
#防止乱码
html.encoding='utf8'
#打印页面出来看看
print(html.text)html=html.text
pachong_picture_path='D:\\PythonCodes\\自己写的爬虫爬下来的图片'
if not os.path.exists(pachong_picture_path):os.mkdir(pachong_picture_path)res=re.findall('"objURL":"(.*?)"',html)  #正则表达式,筛选出html页面中符合条件的图片源代码地址url
for i in res:   #遍历num=num+1       #数字加1,这样图片名字就不会重复了picture=requests.get(i)       #得到每一张图片的大图file_name='D:\\PythonCodes\\自己写的爬虫爬下来的图片\\头像照片'+str(num)+".jpg"   #给下载下来的图片命名。加数字,是为了名字不重复f=open(file_name,"wb")    #以二进制写入的方式打开图片f.write(picture.content)   # 往图片里写入爬下来的图片内容,content是写入内容的意思print(i)    #看看有哪些url
f.close()      #结束f文件操作

 打印出来的效果图

新人创作不易,觉得不错的看官,点个赞吧,么么哒!!!

转载注明出处!

【爬虫】如何通过爬虫,爬取百度图片?新手小白一看便会,内附超详细代码讲解相关推荐

  1. 【Python】爬虫入门6:爬取百度图片搜索结果(基于关键字爬图)

    源代码 #!/usr/bin/env python # -*- coding: UTF-8 -*-# 需求:爬取百度图片# noinspection PyUnresolvedReferences im ...

  2. python如何爬取图片_百度图片爬虫-python版-如何爬取百度图片?

    上一篇我写了如何爬取百度网盘的爬虫,在这里还是重温一下,把链接附上: http://5912119.blog.51cto.com/5902119/1771391 这一篇我想写写如何爬取百度图片的爬虫, ...

  3. python爬虫之正则表达式练习——爬取百度图片

    1 明确需求,创建环境 ''' 第一步:明确需求,转换图片 需求:爬取百度图片中关于森林的图片,并保存 网址:https://image.baidu.com/search/index?tn=baidu ...

  4. python爬虫爬取百度图片,python爬虫篇2:爬取百度图片

    入门级 import requests import re import os from urllib import error def main(): dirPath = "E:\pyth ...

  5. php爬去百度图片,python爬虫:随心所欲地爬取百度图片

    文章目录一.前言 二.需要导入的库 三.实现过程 1.下载链接分析 2.代码分析 3.完整代码 四.Blogger's speech 一.前言 之前爬取了很多静态网页的内容,包括:小说.图片等等,今天 ...

  6. 使用Pytorch搭建CNN模型完成食物图片分类(李宏毅视频课2020作业3,附超详细代码讲解)

    文章目录 0 前言 1 任务描述 1.1 数据描述 1.2 作业提交 1.3 数据下载 1.3.1 完整数据集 1.3.2 部分数据集 2 过程讲解 2.1 读取数据 2.2 数据预处理 2.3 模型 ...

  7. Python爬虫:运用多线程、IP代理模块爬取百度图片上小姐姐的图片

    Python爬虫:运用多线程.IP代理模块爬取百度图片上小姐姐的图片 1.爬取输入类型的图片数量(用于给用户提示) 使用过百度图片的读者会发现,在搜索栏上输入关键词之后,会显示出搜索的结果,小编想大多 ...

  8. python爬虫爬取百度图片总结_python爬虫如何批量爬取百度图片

    当我们想要获取百度图片的时候,面对一张张图片,一次次的点击右键下载十分麻烦.python爬虫可以实现批量下载,根据我们下载网站位置.图片位置.图片下载数量.图片下载位置等需求进行批量下载,本文演示py ...

  9. Python 爬虫实例(1)—— 爬取百度图片

    爬取百度图片  在Python 2.7上运行 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: loveNightimport json ...

  10. python爬虫百度图片_python实现爬取百度图片的方法示例

    本文实例讲述了python实现爬取百度图片的方法.分享给大家供大家参考,具体如下: import json import itertools import urllib import requests ...

最新文章

  1. 【转】centos 6.2 安装mysql-5.5.17
  2. 智能合约重构社会契约 (5)比特犬模型实现智能合约
  3. 局部钩子能防全局钩子吗_Django局部钩子和全局钩子
  4. 聊天ListView使用ViewHolder
  5. python ckeditor上传图片400错误_又一款python开发神器
  6. 计算机过去和现在的变化英语作文,自己过去和现在的变化英语作文带翻译
  7. Jmeter在chrome浏览器中录制脚本
  8. 给C#学习者的建议 - CLR Via C# 读后感
  9. notes for 电子技术技术(模拟部分) 康华光
  10. vue中局部过滤器和全局过滤器的使用
  11. python学生成绩管理程序设计总框图_学生成绩管理系统ER图+流程图+组织结构图-课程设计...
  12. setSingleChoiceItems和setPositiveButton两者触发时期
  13. 贝壳财报图解:年营收808亿增长15% 经调整利润23亿
  14. 科学计算机怎么编程玩,如何通过可编程科学计算器在另一个设备中运行本机MFP语言编写的...
  15. 日常英语---十二、MapleStory/Monsters/Level 1-10(Horny Mushroom)
  16. 关于 数学 线性代数
  17. 音视频互动平台应用分析
  18. 实战6:基于OpenCV的人脸口罩识别检测详细教程
  19. miix2 8 android,联想Miix28平板长测 8寸平板诠释Win8.1
  20. 因为没有网关,我的服务器被 DDoS 了

热门文章

  1. RSA详解 ----- Android中常用的非对称加密算法
  2. Gartner曾劭清:云计算技术成就企业数字化转型之路
  3. 利用百度云存储制作外链mp3音乐地址
  4. 君不密则失臣,臣不密则失身,机事不密则害成
  5. Proof_Of_Work机制
  6. arcgis路网密度计算、提取中心线、面积计算
  7. 增量表、全量表、拉链表的应用场景及优缺点详解
  8. 正点原子 任天堂_任天堂20年前,任天堂用纸Mario改变了RPG风格
  9. mpeg2是信源还是信道编码_11.2、11.3信源及信道编码.ppt
  10. FC-SAN存储技术