【爬虫】如何通过爬虫,爬取百度图片?新手小白一看便会,内附超详细代码讲解
大家好,我是好学的小师弟,今天来和大家分享下,如何通过爬虫,爬取百度图片,并下载保存到本地。
思路:首先找到你想要爬取图片的页面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文件操作
打印出来的效果图
新人创作不易,觉得不错的看官,点个赞吧,么么哒!!!
转载注明出处!
【爬虫】如何通过爬虫,爬取百度图片?新手小白一看便会,内附超详细代码讲解相关推荐
- 【Python】爬虫入门6:爬取百度图片搜索结果(基于关键字爬图)
源代码 #!/usr/bin/env python # -*- coding: UTF-8 -*-# 需求:爬取百度图片# noinspection PyUnresolvedReferences im ...
- python如何爬取图片_百度图片爬虫-python版-如何爬取百度图片?
上一篇我写了如何爬取百度网盘的爬虫,在这里还是重温一下,把链接附上: http://5912119.blog.51cto.com/5902119/1771391 这一篇我想写写如何爬取百度图片的爬虫, ...
- python爬虫之正则表达式练习——爬取百度图片
1 明确需求,创建环境 ''' 第一步:明确需求,转换图片 需求:爬取百度图片中关于森林的图片,并保存 网址:https://image.baidu.com/search/index?tn=baidu ...
- python爬虫爬取百度图片,python爬虫篇2:爬取百度图片
入门级 import requests import re import os from urllib import error def main(): dirPath = "E:\pyth ...
- php爬去百度图片,python爬虫:随心所欲地爬取百度图片
文章目录一.前言 二.需要导入的库 三.实现过程 1.下载链接分析 2.代码分析 3.完整代码 四.Blogger's speech 一.前言 之前爬取了很多静态网页的内容,包括:小说.图片等等,今天 ...
- 使用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 模型 ...
- Python爬虫:运用多线程、IP代理模块爬取百度图片上小姐姐的图片
Python爬虫:运用多线程.IP代理模块爬取百度图片上小姐姐的图片 1.爬取输入类型的图片数量(用于给用户提示) 使用过百度图片的读者会发现,在搜索栏上输入关键词之后,会显示出搜索的结果,小编想大多 ...
- python爬虫爬取百度图片总结_python爬虫如何批量爬取百度图片
当我们想要获取百度图片的时候,面对一张张图片,一次次的点击右键下载十分麻烦.python爬虫可以实现批量下载,根据我们下载网站位置.图片位置.图片下载数量.图片下载位置等需求进行批量下载,本文演示py ...
- Python 爬虫实例(1)—— 爬取百度图片
爬取百度图片 在Python 2.7上运行 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: loveNightimport json ...
- python爬虫百度图片_python实现爬取百度图片的方法示例
本文实例讲述了python实现爬取百度图片的方法.分享给大家供大家参考,具体如下: import json import itertools import urllib import requests ...
最新文章
- 【转】centos 6.2 安装mysql-5.5.17
- 智能合约重构社会契约 (5)比特犬模型实现智能合约
- 局部钩子能防全局钩子吗_Django局部钩子和全局钩子
- 聊天ListView使用ViewHolder
- python ckeditor上传图片400错误_又一款python开发神器
- 计算机过去和现在的变化英语作文,自己过去和现在的变化英语作文带翻译
- Jmeter在chrome浏览器中录制脚本
- 给C#学习者的建议 - CLR Via C# 读后感
- notes for 电子技术技术(模拟部分) 康华光
- vue中局部过滤器和全局过滤器的使用
- python学生成绩管理程序设计总框图_学生成绩管理系统ER图+流程图+组织结构图-课程设计...
- setSingleChoiceItems和setPositiveButton两者触发时期
- 贝壳财报图解:年营收808亿增长15% 经调整利润23亿
- 科学计算机怎么编程玩,如何通过可编程科学计算器在另一个设备中运行本机MFP语言编写的...
- 日常英语---十二、MapleStory/Monsters/Level 1-10(Horny Mushroom)
- 关于 数学 线性代数
- 音视频互动平台应用分析
- 实战6:基于OpenCV的人脸口罩识别检测详细教程
- miix2 8 android,联想Miix28平板长测 8寸平板诠释Win8.1
- 因为没有网关,我的服务器被 DDoS 了