介绍:代码仅作学习使用,如若使用本站代码进行商业用途等牟利带来的后果,本站不负有责任
堆糖图网
爬取代码
注意事项
- 依赖:
requests
、json
、jsonpath
、urllib
- 修改:你的
下载目录路径
- 关键词:修改keyword
'''*************************************************
Copyright (Python), 2020-,Literature Tech. Co., Ltd.
source: None
Author: Written by Literature
Version: 1.0
Date: 2020.07.17
Description:
Others: None
Function List: main
History: The first edition 2020.05.19
*************************************************'''
import os
import requests
import json
import jsonpath
from urllib.parse import quote
from urllib.request import urlretrieve
# 所请求的url :https://www.duitang.com/napi/blog/list/by_search/?kw=%E5%B0%8F%E5%A7%90%E5%A7%90&start=24
headers = {'User-Agent': 'Mozilla/5.0(WindowsNT6.1;rv:2.0.1)Gecko/20100101Firefox/4.0.1'}
keyword = '小清新' #可自行指定
kw = quote(keyword)
page_num = input('您一共要爬取几页图片?(每页144张图片):')
page_num = int(page_num)
def get_img_data(kw,start):
savePath = '/你的下载路径/{}/'.format(keyword)
if not os.path.exists(savePath):
os.mkdir(savePath)
url = 'https://www.duitang.com/napi/blog/list/by_search/?kw={}&start={}'.format(kw,start)
resp = requests.get(url,headers=headers)
# 将json数据转化为字典格式
data_dict = json.loads(resp.text)
# 从字典中快速得到我们想要的信息($代表根结点下 ..代表任意层次)
img_pathList = jsonpath.jsonpath(data_dict,'$..path')
# 通过for循环进行下载
num = start+1
for path in img_pathList:
# 有的图片的jpeg,有的图片是jpg
img_type = os.path.splitext(path)[-1]#.jpeg .jpg
# 有的图片是gif,但是识别到的却是 gif_jpeg,这种图片下载下载就不是动图了,而是10kb左右的低品质图
if(img_type.find('gif_jpeg')!=-1):
# 经过细心观察,发现它貌似所有的gif图片的真实路径后面都是thumb.400_0.gif为结尾
path = path.replace('gif_jpeg','thumb.400_0.gif')
img_type = '.gif'
try:
saveLocation = f'{savePath}{keyword}{num}{img_type}'
urlretrieve(path,saveLocation)
print('{}{}{} 下载成功...'.format(keyword,num,img_type) )
num+=1
except Exception as e:
print(e)
def page_download(pageNum):
offset = 24 #一个数据包24张图片
onePage = 144 #每页有6个数据包
for i in range(0,onePage*page_num,offset):
get_img_data(kw,i)
page_download(page_num)
代码运行效果
文章: 《利用Python爬取www.duitang.com的图片》
联系方式:
文章链接:https://wxiou.cn/index.php/archives/103/
除特别注明外,文章均为Literature原创,转载时请注明本文出处及文章链接
联系方式:
文章链接:https://wxiou.cn/index.php/archives/103/
除特别注明外,文章均为Literature原创,转载时请注明本文出处及文章链接