IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python批量爬取百度图片 -> 正文阅读

[Python知识库]python批量爬取百度图片

作者:recommend-item-box type_blog clearfix

希望各位大佬指出不足,第一次记录,存在问题比较多,各位见谅

从未跑过爬虫代码的菜蛋从百度图片上批量爬取图片详细步骤亲测可用

这份代码目前用不到,但是以后肯定是要用,记录下,以后拿过来直接用

需求:爬虫从百度图片中批量爬取图片到本地
首先感谢大佬的博客,地址我放在这了:
https://blog.csdn.net/qq_52907353/article/details/112391518

详细的一步步来哦

打开百度输入某某,例如zta(不黑不吹),按F12,打开网页源码
在这里插入图片描述
点开网络,刷新一下网页,记录下数据,依次点开下面图片中框框所示:
在这里插入图片描述
代码中需要标头的几部分信息分别是:

User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36```

# 这就是网址信息
请求 URL: https://image.baidu.com/search/acjson?tn=resultjson_com&logid=9347931664272835957&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%BC%A0%E5%A4%A9%E7%88%B1&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=&copyright=&word=%E5%BC%A0%E5%A4%A9%E7%88%B1&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=1&fr=&expermode=&nojc=&pn=120&rn=30&gsm=78&1628608999095=

查询字符串中的所有信息,(你可以一会在代码中ctrl+C ctrlV复制粘贴,改改格式,有点多,不急,爬出图片就行)

接下来就是全部代码了我做了详细的解释


```python
import requests
import re
import os

# 设置保存本地文件夹
save_folder = "./zhangtianai/"
if os.path.exists(save_folder):
    print("文件夹存在")
else:
    os.mkdir(save_folder)
    
page = input('请输入要爬取多少页:')
page = int(page) + 1
header = {
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36\
     (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36'
}

# 这个是记录总的爬取次数,如果多次添加,可以每次修改这个值,继续上次爬取图片数量的代码不知道怎么添加,以后慢慢学着添加
n = 0
pn = 1        # 默认最少爬一张

for m in range(1,page):   # 总共下载多少页
    header = {
        'User-Agent':"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
        }

    url = "https://image.baidu.com/search/acjson?tn=resultjson_com&logid=81708\
          84394692947667&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%BC%A0%E\
           5%A4%A9%E7%88%B1&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&l\
           atest=&copyright=&word=%E5%BC%A0%E5%A4%A9%E7%88%B1&s=&se=&tab=&width=&height=&f\
           ace=&istype=&qc=&nc=1&fr=&expermode=&nojc=&pn=60&rn=30&gsm=3c&1628595832275="

    # 这部分参考CSDN大佬,做了一句解析的修改,但是填这个信息很麻烦但是目
    # 前我python基础不好,也没有跑过爬虫的任何代码,在爬取百度图片是直接使
    # 用requests.get解析url时,提示百度安全验证的error,也没解决,希望有
    # 懂的大佬给我指示下这个问题我该怎么解决,各位大佬别嘲笑我能力差,我会慢
    # 慢熟悉起来的。
    param  = {
    "tn": "resultjson_com",
    "logid": "8170884394692947667",
    "ipn": "rj",
    "ct": "201326592",
    "is":"",
    "fp": "result",
    "queryWord": "张天爱",
    "cl": "2",
    "lm": "-1",
    "ie": "utf-8",
    "oe": "utf-8",
    "adpicid":"",
    "st":"",
    "z":"",
    "ic":"",
    "hd":"",
    "latest":"",
    "copyright":"",
    "word": "张天爱",
    "s":"",
    "se":"",
    "tab":"",
    "width":"",
    "height":"",
    "face":"",
    "istype":"",
    "qc":"",
    "nc": "1",
    "fr":"",
    "expermode":"",
    "nojc":"",
    "pn": pn,       # 这个参数记得要改哦,这是每次爬取的数量
    "rn": "30",
    "gsm": "3c",
    }

    page_text = requests.get(url=url, headers=header, params=param)

    page_text.encoding = 'utf-8'
    # 用json解析报/的error,使用正则拿到所有图片信息
    info_list = re.findall('"thumbURL":"(.*?)"', page_text.text)
    # page_text = page_text.json()
    # info_list = page_text['data']
    img_path_list = []
    name = "zta"              # 方便图片命名 (可以修改)
    # 记录一个所有图片的ls,遍历进行下载
    for i in info_list:
        img_path_list.append(i)

    for img_path in img_path_list:
        img_data = requests.get(url=img_path, headers=header).content  # 根据url下载图片
        img_path = name + "_"+  str(n) + '.jpg'      # 当前目录重命名进行保存
        print(img_path)
        with open(save_folder+img_path, 'wb') as fp:                #
            fp.write(img_data)                 # 这个部分读取的图片不知道是否损坏,过几天添加一个判断图片损坏的函数,
                                               # 我现在工作中试试,好了分享给大家
        n = n + 1

    pn += 19                           # 每次爬取图片的数量

```python

```python
结果如下图:

过程及结果如下图:
在这里插入图片描述
爬取的图片
在这里插入图片描述
第一次写,写的很烂,排版什么的也都没注意,不求点赞,只希望能读到它
的人是有一点点帮助的,如果其中哪里有什么问题,希望大佬指点,还有我在代码中列举出来的直接requsets.get(url)解析百度的地址,报错百度安全验证Error,这个问题我还没解决,说的accept 添加到headers中,在哪里找到accept?。慢慢积累,路很长,也很远,希望能一直坚持下去~~~~~

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:18:43  更:2021-08-11 12:20:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 11:11:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码