爬取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
+关注
关注
56文章
4782浏览量
84449 -
爬虫
+关注
关注
0文章
82浏览量
6838
发布评论请先 登录
相关推荐
中国中车与中信银行深化战略合作
与中信集团及中信银行的合作关系,双方将在既有合作基础上,持续推动“立新服务”的深入实施。通过加强金融业务模式的创新,共同探索特色产业链金融的发展路径,中国中车集团与中信银行将携手打造更
如何理解PCB设计的爬电距离?
一站式PCBA智造厂家今天为大家讲讲PCB设计爬电距离要求与走线规则有哪些?PCB设计爬电距离要求与走线规则。在PCB设计中,爬电距离和走线规则是关键的考虑因素,尤其是在高压电路和高频电路的设计中
QFN爬锡不好如何解决?—SMT锡膏
QFN封装的芯片IC,侧面引脚爬锡是个大难题,经常会遇到一些客户反馈:qfn爬锡不好怎么解决?qfn芯片引脚标准上锡高度如何确定?qfn侧面不爬锡?下面由深圳佳金源锡膏厂家来讲解一下:一、QFN锡膏
爬电距离是根据什么确定的
爬电距离(Creepage Distance)是指在电气设备中,两个导体之间沿绝缘材料表面的距离。它是一个重要的电气参数,用于评估电气设备在正常工作和故障条件下的绝缘性能。爬电距离的确定涉及到多个
爬电距离用什么检测设备
爬电距离是指在电气设备中,不同电位的导体之间,通过绝缘材料隔离的最短距离。爬电距离的检测对于确保电气设备的安全运行至关重要。本文将介绍爬电距离的检测设备及其使用方法。 一、
爬电距离与电压的对应关系
爬电距离(Creepage Distance)是电气设备中的一个重要概念,它指的是在绝缘材料表面,沿着绝缘体表面或边缘,从带电部分到接地部分或不同电位部分之间的最短距离。爬电距离的大小直接影响
鸿蒙HarmonyOS引用图片的方法
前言 Image通过调用接口来创建,接口调用形式如下: Image(src: string | Resource | media.PixelMap) 该接口通过图片数据源获取图片
爬电距离和电气间隙的区别
爬电距离和电气间隙的区别 爬电距离和电气间隙是电力系统中两个重要的概念,它们在电力设备的设计、运行和维护中起着关键的作用。本文将详细解释这两个概念的含义、区别以及它们在电力系统中的应用。 首先
什么是电气间隙,什么是爬电距离,PCB为什么要开槽?
什么是电气间隙,什么是爬电距离,PCB为什么要开槽? 电气间隙是指在电气设备或电路中,两个相邻的电极之间的最短距离。它主要用于防止因电气设备或电路元件之间的电荷迁移而引起的电气击穿。电气间隙的大小
评论