赞
踩
本次代码案例的原理是通过爬虫来实现的,所以首先要了解什么是 爬虫? 爬虫是干嘛的?
网络爬虫,又称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动请求万维网网站并提取网络数据得到程序或脚本。
用途
大部分爬虫工作原理
打开百度,来到百度图片搜索界面
点击右键,选择 检查,或者按下快捷键 F12 来到开发者工具界面
点击最上方的 Network, 在百度图片输入框输入你想要搜索的图片,点击 百度一下
有的可能会显示在左边或者右边,这个可以设置的,点击顶栏最右边的 三个点, Dock side选择自己舒服的展开样式
搜索之后可以在 开发者工具 下方看到有变化了,这些是网页的资源,我们筛选一下,点击选择 XHR
这时候我们将光标放在图片区域,向下滑动加载更多的图片,按下 Crtl+R 刷新这时候我们会看到很多 acjson?······的数据
随便点开一个,这里我们可以看到在Headers中有很多参数,这里就是我们今天的重点所在
这里我就只介绍几个比较重要的,想要详细了解每个参数的可以点击下方链接
作者:宋学慧
链接:https://blog.csdn.net/weixin_45598506/article/details/112917752
Request URL -->发送请求的链接
Request Method -->发送请求的类型(GET、POST等等)
Status Code -->状态码(200表示请求成功)
User-Agent -->客户端使用的操作系统和浏览器的名称和版本(用来模拟器浏览器访问)
Cookie -->用来辨别用户身份
queryWord -->搜索词(可以看到这里就是我们在百度图片输入框输入的词)
pn -->表示页数(值为页数*30)
rn -->表示一页显示的图片数量
gsm -->表示一个十六进制值(pn转换为16进制取前两位)
通过几个不同的 acjson?···发现,他们的Query String Parameters除了queryWord,pn,gsm这三个参数的值不相同,其他都是一样的
由此我们可以设计由用户输入queryWord,自定义pn来实现自动图片搜索,废话不多话,上代码
# -*- coding: utf-8 -*- """ @author: 袁德伟 @age: 21 @Data: 2021 Created on Wed Feb 10 22:28:28 2021 """ import os #文件夹的操作 import time #设置间隔时间 import shutil #删除文件夹操作 import requests #发送请求 quantity = 0 #页数初始化 word = "" #搜索词 file = "" #文件夹名称 headers = {} #头部信息 all_list = [] #存放图片链接 parameters = [] #存放每页XHR接口的param
headers = {
'User-Agent':'Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/87.0.4280.88Safari/537.36',
}
parameters = {
'queryWord':self.word, #搜索词(用户输入)
'word':self.word, #搜索词(用户输入)
'pn':pn, #页数(用户输入)
'rn':'30',
'gsm':gsm, #利用hex()函数将pn转换为十六进制并获取前两位
TIME:'', #时间戳(采用time.time()获取)
}
最后就是逻辑设计了,由用户输入数据–>求出参数–>创建文件夹–>发送请求–>获得图片资源–>下载到文件夹
代码太多,这里只展示部分,想要完整代码可点击下方链接下载
https://download.csdn.net/download/weixin_47971206/16794679
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。