文章目录

  • 综合
  • 步进版
  • 转载

仅作为记录,代码均可运行

综合

运行后,输入想爬取的页数:
输入1——爬取30张
输入2——爬取60张
输入3——爬取90张

import requests
from lxml import etreepage = 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
# pn是从第几张图片获取 百度图片下滑时默认一次性显示30张
for m in range(1, page):url = 'https://image.baidu.com/search/acjson?'param = {'tn': 'resultjson_com','logid': '11941270206720072198','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': '','force': '','pn': '30','rn': '30','gsm': '1e',}page_text = requests.get(url=url, headers=header, params=param)page_text.encoding = 'utf-8'page_text = page_text.json()info_list = page_text['data']del info_list[-1]img_path_list = []for i in info_list:img_path_list.append(i['thumbURL'])for img_path in img_path_list:img_data = requests.get(url=img_path, headers=header).contentimg_path = r'E:\code\python\20191201\b8catimg\catpro\ ' + str(n) + '.jpg'with open(img_path, 'wb') as fp:fp.write(img_data)n = n + 1pn += 29

步进版

改变程序里pn的值,表示从某一张开始-爬取30张图片:
如果pn设置为1,表示从第一张开始爬取-爬取其之后的30张图片


改变程序里的n值,表示存入的图片的命名:
如果n=0,则存入的图片的命名分别为0.jpg、1.jpg、2.jpg、…、29.jpg


import requests#进行UA伪装
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'
}
url = 'https://image.baidu.com/search/acjson?'
param = {'tn': 'resultjson_com','logid': '11941270206720072198','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': '','force': '','pn': '30','rn': '30','gsm': '1e',
}
#将编码形式转换为utf-8
page_text = requests.get(url=url,headers=header,params=param)
page_text.encoding = 'utf-8'
# page_text = page_text.text
# print(page_text)
page_text = page_text.json()# 先取出所有链接所在的字典,并将其存储在一个列表当中
info_list = page_text['data']
# 由于利用此方式取出的字典最后一个为空,所以删除列表中最后一个元素
del info_list[-1]
# 定义一个存储图片地址的列表
img_path_list = []
for info in info_list:img_path_list.append(info['thumbURL'])#再将所有的图片地址取出,进行下载
#n将作为图片的名字
n = 0
for img_path in img_path_list:img_data = requests.get(url=img_path,headers=header).content        # .content获取真正的图片内容img_path = r'E:\code\python\20191201\b8catimg\catstep\ ' + str(n) + '.jpg'with open(img_path,'wb') as fp:fp.write(img_data)n += 1
print('ok')

转载

传送门













理解

现在百度图库的图片跟原来的不一样,(原来是用页码的形式,第一页第二页)现在使用加载的形式,都在同一页里;因此使用ajax请求的方式爬虫;

跟之前的区别在于多了param

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

最后取page_text里的data的thumbURL


json在线解析工具

(使用效果:

能将网页源代码一目了然


关于XHR选项


转载:爬取百度图库中猫的图片相关推荐

  1. Python爬取百度图库

    Python爬取百度图库 页面分析 通过Chrome 的开发者模式,我们可以很发现 百度图库是通过ajax 加载图片的. 每一次都会发送一个请求:https://image.baidu.com/sea ...

  2. 百度贴吧界面html程序代码,python爬虫例题:爬取百度贴吧评论区图片和视频

    百度贴吧是全球最大的中文交流平台,你是否跟我一样,有时候看到评论区的图片想下载呢?或者看到一段视频想进行下载呢? 今天,本期Python教程带大家通过搜索关键字来获取评论区的图片和视频. [二.项目目 ...

  3. 利用Python爬取百度指数中需求图谱的关键词

    文章目录 需求背景 0.获取cookies 一.使用datetime计算查询的日期 二.爬取需求图谱关键词 三.扔进csv里 总结 已更新!!! 之前有小伙伴在评论里反应代码有点问题,今天看了下,报错 ...

  4. 爬取百度翻译中得到sign值

    打开开发者工具:查翻译发送的请求信息,得到其 FormData 看到有个sign,接下来就破解一下,sign sign 这个参数,应该如何设置?我们在 js 代码中,发现在某个 index_xxx 开 ...

  5. python爬虫吧-python爬虫-爬取百度贴吧帖子加图片

    1.[代码][Python]代码 # -*- coding: utf-8 -*- """ 百度贴吧帖子抓取 """ import urlli ...

  6. Python 爬虫进阶篇-4行代码实现爬取指定网站中的全部图片实例演示及原理剖析

    上一篇:Python 爬虫入门篇-如何获取网页中的图片.我们了解到了 urllib 获取图片的原理,urllib.request.urlretrieve() 就是用来获取图片的. 这一篇,我们用正则表 ...

  7. 三十一、Scrapy爬取百度图片

    @Author:Runsen Runsen近段时间进入Scrapy,写了几个爬虫练练手,就找百度图片入手了.本文就是Scrapy的入门文章. 文章目录 目标 创建项目 分析逻辑 代码 目标 爬取 百度 ...

  8. python 百度百科 爬虫_爬虫爬取百度百科数据

    以前段时间<青春有你2>为例,我们使用Python来爬取百度百科中<青春有你2>所有参赛选手的信息. 什么是爬虫? 为了获取大量的互联网数据,我们自然想到使用爬虫代替我们完成这 ...

  9. Java爬虫历险记 -- (1)爬取百度首页的logo

    Java爬虫历险记 – (1)爬取百度首页的logo 在这篇文章里,介绍两种方式来获取百度网页的logo: (1)Httpclient (2) jsoup + Httpclient ,详细的运行结果可 ...

最新文章

  1. @scheduled注解配置时间_探究 Spring 的定时任务配置
  2. [代码]ural 1655 Somali Pirates
  3. 2/3 常用符号:格式说明符
  4. vue基础18(vue-cli脚手架项目中组件的使用)
  5. jmeter web服务器协议,【JMeter4.0学习(三)】之SoapUI创建WebService接口模拟服务端以及JMeter测试SOAP协议性能测试脚本开发(示例代码)...
  6. An attempt has been made to start a new process before the current process
  7. Nginx代理连接Redis失败
  8. Python第三方库使用 —— PIL
  9. rhcsa第二天笔记
  10. 镜像分割与高可用性灾难恢复
  11. 有人已经在用AI画色图了...
  12. 【直播礼物特效】vapxtool简介(一)(企鹅电竞)
  13. 在Linux上安装吉大校园客户端
  14. java8 treemap 排序_java中TreeMap排序的示例代码
  15. 数显之家快讯:【SHIO世硕心语】中国武侠背后的传奇家族-海宁查氏,如何兴盛600年?
  16. Linux——man命令
  17. 微信公众号模板消息推送问题汇总
  18. 1.7 基尔霍夫定律
  19. DB buffer bussy wait 分析一例
  20. python小游戏——俄罗斯方块

热门文章

  1. 读卡器 写卡器 卡机 厂家说明介绍
  2. Unity LeapMotion入门
  3. Backtrader 策略回测初探
  4. 办理北京市户口的流程
  5. Idea打Jar包并生成exe文件(三:Idea打Jar包)
  6. 苏宁易购总裁侯恩龙:让每一款新品都成爆款
  7. Linux/proc文件系统操作指南
  8. 3721软件测试,3721A-3721A电子负载│亚锐直流电子负载
  9. APOC为Neo4j节点添加Label
  10. NREC Max-Pac 8.72 中文版 高级教程 初级教程 nrec教程 nrec8.72