爬取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文章
4797浏览量
84693 -
爬虫
+关注
关注
0文章
82浏览量
6881
发布评论请先 登录
相关推荐
中伟视界:矿山智能分析平台通过分级管理报警信息,结合电话、短信通知,提高安全隐患响应速度
随着矿山行业对安全管理的要求不断提高,智能分析平台中的报警等级管理成为保障矿工生命安全的重要措施。通过电话与短信的有效结合,能够快速、精准地响应各类安全隐患,实现信息的及时传递。矿山企业应重视标准化流程、选择合适平台和持续优化反
中信建投建议关注端侧AI模组机会
中信建投近日发布的研报指出,随着OpenAI的ChatGPT功能全面接入苹果设备,包括iPhone、iPad和Mac,端侧AI产业的发展正在加速。这一趋势为AI模组市场带来了新的机遇。 据研报分析
如何理解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) 该接口通过图片数据源获取图片
评论