爬取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
+关注
关注
51文章
4675浏览量
83467 -
爬虫
+关注
关注
0文章
77浏览量
6517
发布评论请先 登录
相关推荐
鸿蒙HarmonyOS引用图片的方法
前言 Image通过调用接口来创建,接口调用形式如下: Image(src: string | Resource | media.PixelMap) 该接口通过图片数据源获取图片
如何判断电路中晶振是否被过分驱动?
如何判断电路中晶振是否被过分驱动? 判断电路中晶振是否被过分驱动是一个重要的工程任务,它可以帮助我们确保晶振的稳定性,并避免可能的故障和损坏。在本文中,我将详细介绍晶振过分驱动的概念、原因以及
PCB设计安规,电气间隙与爬电距离要点
在PCB设计中,爬电距离和电气间隙是两个非常重要的安规要求。它们都涉及到PCB上元件之间的安全距离,以确保在元件故障时,不会发生短路或其他安全问题。
爬电距离是指两个连接的元件之间的距离,通常是通过
发表于 11-03 11:16
PCB设计安规丨爬电距离与走线规则
爬电距离是沿绝缘表面测得的两个导电零部件之间或导电零部件与设备防护界面之间的最短路径。即在不同的使用情况下,由于导体周围的绝缘材料被电极化,导致绝缘材料呈现带电现象。
UL、CSA和VDE安全
发表于 10-31 16:45
Cortex-R82的预取器功能分析
高性能处理器采用硬件数据预取来减少大的主内存延迟对性能的负面影响。有效的预取机制可以显著提高缓存命中率。数据预取通过在需要数据之前提取数据来提高执行性能。虽然预取大大提高了许多程序的性
发表于 08-09 06:11
中信集团与华为公司成功举办“商业联合创新中心”签约揭牌仪式
2023年6月16日,中信集团总经理奚国华、华为公司轮值董事长胡厚崑在深圳共同为“中信-华为商业联合中心”揭牌。揭牌仪式上,中信银行、中信网络、中信
中信网络参加第三十一届中国国际信息通信展览会
等方面的创新成果,内容延伸到工业制造、医疗、能源、交通等众多领域,以丰富的案例和场景展示信息通信业在赋能实体经济和推动传统行业转型升级方面发挥的积极作用。 中信网络有限公司与中信卫星携手参展,以“融天汇地赋能产业数字化发
图片文字识别:揭开数字世界的神秘面纱
便应运而生。 图片文字识别,简单来说就是将图片中的文字信息提取出来。这项技术的应用范围非常广泛,例如在商业领域中,我们可以通过图片文字识别技
评论