0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

python爬虫知识分享 来源:python爬虫知识分享 作者:python爬虫知识分享 2022-03-23 17:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

通过本案例解析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
    +关注

    关注

    59

    文章

    4892

    浏览量

    90416
  • 爬虫
    +关注

    关注

    0

    文章

    87

    浏览量

    8203
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    鸿蒙智能体开发知识库---创建知识库

    信息,可以选择对图片智能标注; 3.导入方式-数据源:配置接口的形式导入知识数据,按提示填写相关信息; 4.导入方式-爬虫:填写
    发表于 03-06 10:18

    京东图片搜索API深度解析:以图搜货赋能电商全场景

    京东图片搜索API 是京东开放平台提供的一项基于图像识别技术的视觉搜索服务,能够通过上传图片图片URL,在京东海量商品库中精准匹配外观、功能相似的商品,并返回结构化商品
    的头像 发表于 02-08 14:56 967次阅读

    壁机器人磁铁的一些常见问题

    壁机器人近几年比较火,它是一类能够在垂直墙面、天花板、倾斜表面上移动和作业的特种机器人,今天我们不聊其它,只聊下关于磁吸附应用中的磁铁,以下是小编整理的关于壁机器人中磁铁的一些常见问题。
    的头像 发表于 01-09 10:06 528次阅读
    <b class='flag-5'>爬</b>壁机器人磁铁的一些常见问题

    京东关键词搜索商品列表的Python爬虫实战

    京东关键词搜索商品列表 Python 爬虫实战 你想要实现京东关键词搜索商品的爬虫,我会从 合规声明、环境准备、页面分析、代码实现、反优化 五个方面展开,帮助你完成实战项目。 一、前置声明(重要
    的头像 发表于 01-04 10:16 1582次阅读

    1688拍立淘图片搜索API概述

    1688 拍立淘是基于图像识别技术的商品搜索服务,允许用户通过上传图片来搜索相似商品。 1.主要功能特点 以图搜图:通过图片内容识别相似商品。 商品匹配:自动匹配平台内相似商品。 批量
    的头像 发表于 12-17 14:56 527次阅读

    淘宝图片搜索商品API指南

    一、摘要 淘宝图片搜索商品API是基于图像识别技术的智能搜索接口,允许用户通过上传商品图片来搜索相似或同款商品。该接口广泛应用于比价、找同款、商品识别等电商场景。 二、接口概述 1.功能特性
    的头像 发表于 12-08 14:26 1424次阅读

    中信数科-华为“商业联合创新中心”正式揭牌

    【中国,杭州,2025年10月22日】中信数科-华为“商业联合创新中心”揭牌仪式在杭州举行。中信数科党委书记、董事长张继胜,网络运营总监郑军,华为副总裁、ISP与互联网军团CEO岳坤,华为政企光领域
    的头像 发表于 10-24 20:55 3046次阅读
    <b class='flag-5'>中信</b>数科-华为“商业联合创新中心”正式揭牌

    淘宝天猫商品评论数据技术方案(附 python 代码)

    一、摘要 淘宝天猫商品评论API是淘宝开放平台提供的核心数据接口,用于获取指定商品的用户评价信息,包括评分、内容、晒图、追评等数据。该接口广泛应用于电商数据分析、竞品监控、用户反馈挖掘等场景,支持
    的头像 发表于 10-10 14:48 1004次阅读

    电距离”与“电气间隙”是怎样计算的?

    之间的最短路径。 电气间隙 在两个导电零部件之间或导电零部件与设备防护界面之间测得的最短空间距离。 即在保证电气性能稳定和安全的情况下,通过空气能实现绝缘的最短距离。 一般来说,电距离要求的数值比电气间隙要求的数
    的头像 发表于 09-10 17:29 3.9w次阅读
    “<b class='flag-5'>爬</b>电距离”与“电气间隙”是怎样计算的?

    小鹏汽车与中信银行达成战略合作

    近日,小鹏汽车与中信银行在广州举行战略合作签约仪式,小鹏汽车副董事长兼联席总裁顾宏地与中信银行广州分行行长薛锋庆共同出席,并代表双方签订战略合作协议。
    的头像 发表于 08-19 11:38 953次阅读

    电气间隙与电距离的相关设计

    众所周知,48V相较12V电压上升,因此需要更大的电距离(安全绝缘路径)和电气间隙(安全绝缘间距)。这意味着部分连接器需要重新设计。
    的头像 发表于 07-09 11:33 2853次阅读

    FLIR ONE Edge Pro红外热像仪在宠饲养中的应用

    宠饲养中,温度控制是决定宠物健康与幸福的关键因素。无论是巴西龟、蜥蜴还是蛇类,它们依赖外部热源调节体温,稍有不慎就可能导致健康问题。今天,我们就通过一位宠主人的真实案例,看看FLIR ONE Edge Pro智能红外热像仪
    的头像 发表于 06-23 13:40 1775次阅读

    TRCX应用:显示面板电容指纹分析

    在大尺寸面板上扫描指纹是捕捉指纹上脊谷间的电容差异。为了加快计算执行速度,通过分布式计算对仿真区域进行划分,并自动合并为包含指纹信息的结果。工程师可以通过快速精确的仿真算法,根据布局结果分析
    发表于 06-17 08:54

    流速仪检定车同步电机调速的瞬态过程分析

    ,但负载变化会引起同步转速下功率角的摆动。针对不同性质的负载对同步转连的影响,通过分析同步电机瞬态过程特性,并结合反馈控制电路实验,得出利用反馈控制提高同步电机瞬态过程特性的结论。 纯分享帖,需要者可点
    发表于 06-10 13:05

    鸿蒙开发实现图片上传(上传用户头像)

    应用场景: 选择图片 1.1. 添加图片到相册中 默认的相册中无法添加图片:windows 模拟器可以通过截图来添加图片 1.2. 选择相册
    发表于 05-24 23:09