首先确认已经安装Python
安装requests库
pip install requests
# Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。
# 它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。
# Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。更重要的一点是它支持 Python3 哦!
# 关于requests http://docs.python-requests.org/zh_CN/latest/user/quickstart.html
import requests
import os
#
# 通过url打开链接
#
def url_open(url):
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0'}
return requests.get(url, headers)
#
# 根据url获取总页数
# 注意:此方法只针对http://jandan.net/ooxx/,如果是其他页面,需要重写逻辑
#
def get_page(url):
html = url_open(url).text
a = html.find('current-comment-page') + 23
b = html.find(']', a)
return html[a:b]
#
# 根据url获取图片列表
#
def find_imgs(url):
html = url_open(url).text
img_addrs = []
a = html.find('img src=')
while a != -1:
b = html.find('.jpg', a, a + 255)
if b != -1:
img_addrs.append("http:" + html[a + 9:b + 4])
else:
b = a + 9
a = html.find('img src', b)
return img_addrs
#
# 下载并保存图片至当前目录
#
def save_imgs(img_addrs):
for each in img_addrs:
filename = each.split('/')[-1]
with open(filename, 'wb') as f:
img = url_open(each).content
f.write(img)
#
# 入口方法
#
def download_mm(folder="ooxx"):
if os.path.isdir(folder):
# os.rmdir(folder)
print('路径已存在!~ ')
else:
# 创建图片保存路径
os.mkdir(folder)
# 改变当前工作目录(切换至改目录)
os.chdir(folder)
url = "http://jandan.net/ooxx/"
page_num = int(get_page(url))
print('页数:', page_num)
total = 0
while (page_num != 0):
page_url = url + 'page-' + str(page_num) + '#comments'
img_addrs = find_imgs(page_url)
# 下载保存图片
save_imgs(img_addrs)
count = len(img_addrs)
total += count
print('第', page_num, '页,共', count, '张', img_addrs)
page_num -= 1
print('总共图片:', total, '(张)')
#
# 主入口
#
if __name__ == '__main__':
download_mm()