通过本案例解析ajax请求返回的信息下载图片
爬取url地址:https://pic.sogou.com/pics?query=动物
分析:
分析url地址:每页25条数据,共计10页
第1页:https://pic.sogou.com/napi/pc/searchList?mode=1&start=0&xml_len=48&query=动物
第2页:https://pic.sogou.com/napi/pc/searchList?mode=1&start=48&xml_len=48&query=动物
第3页:https://pic.sogou.com/napi/pc/searchList?mode=1&start=96&xml_len=48&query=动物
通过分析得出请求改变start参数就可以改变页数
具体实现代码:
import requests
import os
class ImageSougou(object):
url = 'https://pic.sogou.com/napi/pc/searchList'
save_dir = './sougou' # 文件保存的路径
count = 0
# 初始化
def __init__(self, word):
self.word = word
self.dir_path = os.path.join(self.save_dir, word)
self.params = {
'query': word,
'mode': '1',
'start': '0',
'xml_len': 48,
}
self.headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36',
}
# 创建保存图片的文件夹
self.folder_exist(self.dir_path)
self.last_img_url = ''
self.current_page = 0
# 请求包含图片url的网页
def parse(self):
while True:
self.params['start'] = str(self.current_page*48)
response = requests.get(url=self.url, headers=self.headers, params=self.params)
response.encoding='utf8'
data = response.json()['data']['items']
if data:
for img_info in data:
img_url = img_info['picUrl']
self.download(img_url)
self.current_page += 1
else:
break
# 下载一张图片
def download(self, img_url, img_type='jpg'):
self.count += 1
print('正在下载第%d张图片...'%self.count, img_url)
try:
response = requests.get(img_url)
except Exception as e:
print('下载失败:', img_url)
return None
img_name = img_url.split('/')[-1]
img_path = os.path.join(self.dir_path, img_name)
try:
with open(img_path, 'wb') as f:
f.write(response.content)
except Exception as e:
print('下载失败:', img_url)
def folder_exist(self, dir_path):
'''
1. 作用:判断文件夹路径是否存在,不存在则创建
2. 参数:dir_path:文件夹路径
3. 返回值:None
'''
if not os.path.exists(dir_path):
os.makedirs(dir_path)
if __name__ == '__main__':
image = ImageSougou('动物')
image.parse()
审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
python
+关注
关注
57文章
4858浏览量
89588 -
爬虫
+关注
关注
0文章
87浏览量
7951
发布评论请先 登录
相关推荐
热点推荐
淘宝图片搜索商品API指南
一、摘要 淘宝图片搜索商品API是基于图像识别技术的智能搜索接口,允许用户通过上传商品图片来搜索相似或同款商品。该接口广泛应用于比价、找同款、商品识别等电商场景。 二、接口概述 1.功能特性
中信数科-华为“商业联合创新中心”正式揭牌
【中国,杭州,2025年10月22日】中信数科-华为“商业联合创新中心”揭牌仪式在杭州举行。中信数科党委书记、董事长张继胜,网络运营总监郑军,华为副总裁、ISP与互联网军团CEO岳坤,华为政企光领域
“爬电距离”与“电气间隙”是怎样计算的?
之间的最短路径。 电气间隙 在两个导电零部件之间或导电零部件与设备防护界面之间测得的最短空间距离。 即在保证电气性能稳定和安全的情况下,通过空气能实现绝缘的最短距离。 一般来说,爬电距离要求的数值比电气间隙要求的数
小鹏汽车与中信银行达成战略合作
近日,小鹏汽车与中信银行在广州举行战略合作签约仪式,小鹏汽车副董事长兼联席总裁顾宏地与中信银行广州分行行长薛锋庆共同出席,并代表双方签订战略合作协议。
FLIR ONE Edge Pro红外热像仪在爬宠饲养中的应用
在爬宠饲养中,温度控制是决定宠物健康与幸福的关键因素。无论是巴西龟、蜥蜴还是蛇类,它们依赖外部热源调节体温,稍有不慎就可能导致健康问题。今天,我们就通过一位爬宠主人的真实案例,看看FLIR ONE Edge Pro智能红外热像仪
TRCX应用:显示面板电容指纹分析
在大尺寸面板上扫描指纹是捕捉指纹上脊谷间的电容差异。为了加快计算执行速度,通过分布式计算对仿真区域进行划分,并自动合并为包含指纹信息的结果。工程师可以通过快速精确的仿真算法,根据布局结果分析
发表于 06-17 08:54
流速仪检定车同步电机调速的瞬态过程分析
,但负载变化会引起同步转速下功率角的摆动。针对不同性质的负载对同步转连的影响,通过分析同步电机瞬态过程特性,并结合反馈控制电路实验,得出利用反馈控制提高同步电机瞬态过程特性的结论。
纯分享帖,需要者可点
发表于 06-10 13:05
鸿蒙开发实现图片上传(上传用户头像)
应用场景:
选择图片
1.1. 添加图片到相册中
默认的相册中无法添加图片:windows 模拟器可以通过截图来添加图片
1.2. 选择相册
发表于 05-24 23:09
新能源汽车驱动电机专利信息分析
采用Thomson Innovation专利检索分析平台搜集整理驱动电机相关专利,通过分析国内外驱动电机专利的 申请时间趋势、国别分布、申请人排名、技术热点分布以及国内专利省市分布,了解国内外驱动
发表于 03-21 13:39
格陆博科技荣登投中信息2024年度锐公司100榜单
近日,投中信息重磅发布2024年度“锐公司100榜单”,格陆博科技凭借在智能驾驶领域的突出表现和强劲发展势头,再度成功入选!这也是格陆博科技连续第二年获此殊荣!
集成电路设计中静态时序分析介绍
Analysis,STA)是集成电路设计中的一项关键技术,它通过分析电路中的时序关系来验证电路是否满足设计的时序要求。与动态仿真不同,STA不需要模拟电路的实际运行过程,而是通过分析电路中的各个时钟路径、信号传播延迟等信息来评
什么是爬电距离与电气间隙?
义爬电距离,可形象理解为一蚂蚁沿绝缘材料表面从一导电部件爬至另一导电部件所经最短路径。它涉及两个导电部件间沿绝缘材料表面测量的最短空间距离,这一距离的设定需综合考量电气设备的额定电压、绝缘材料的耐泄
中伟视界:矿山智能分析平台通过分级管理报警信息,结合电话、短信通知,提高安全隐患响应速度
随着矿山行业对安全管理的要求不断提高,智能分析平台中的报警等级管理成为保障矿工生命安全的重要措施。通过电话与短信的有效结合,能够快速、精准地响应各类安全隐患,实现信息的及时传递。矿山企业应重视标准化流程、选择合适平台和持续优化反
中信建投建议关注端侧AI模组机会
中信建投近日发布的研报指出,随着OpenAI的ChatGPT功能全面接入苹果设备,包括iPhone、iPad和Mac,端侧AI产业的发展正在加速。这一趋势为AI模组市场带来了新的机遇。 据研报分析

通过分析ajax中信息爬取图片
评论