特别说明:

因为早些时候鼠绘的接口调整,之前的代码已经不能用了。

正好最近在学习scrapy,于是重新写了一个,项目放在github  https://github.com/TurboWay/ishuhui

一、起因:

  很喜欢看海贼漫画,其中鼠绘汉化的海贼王无疑是最好的,更新最快的。但是由于版权的问题,迫于压力,鼠绘官网早一点的海贼王已经看不了,但是。。。重点是,我发现接口还是可以用的,于是就写了个爬虫把鼠绘翻译的海贼王漫画都爬了下来。分享下源码,供有需要的海迷使用。另外建议不要在高峰时段爬取,毕竟我们都爱鼠绘。

二、如何使用:

  有安装python环境的,直接复制源码,运行.py

三、代码如下:

# -*- coding: utf-8 -*-
import requests,json,time,os,shutil,logging,sys
from PIL import Image
from io import BytesIO logger = logging.getLogger('log')
logger.setLevel(logging.DEBUG) # log format
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') # console log
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
ch.setFormatter(formatter)
logger.addHandler(ch) def get_url(url):
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)'
' Chrome/62.0.3202.75 Safari/537.36'}
response = requests.get(url=url, headers=headers, timeout=5)
js = json.loads(response.text)
if js["errNo"] == 0:
return js["data"]
else:
logger.warning("请求失败:{0}".format(js)) # 去掉文件名禁止符号
def clean(text):
kws = ['/','\\',':','*','"','<','>','|','?']
for kw in kws:
text = text.replace(kw,'.')
return text # 新建文件夹
def makefile(path,istruncate):
if os.path.exists(path) and istruncate:
shutil.rmtree(path)
os.mkdir(path)
elif not os.path.exists(path):
os.mkdir(path) # 下载图片
def save_pic(img_src,picname):
try:
response = requests.get(img_src)
image = Image.open(BytesIO(response.content))
image = image.convert('RGB')
image.save(picname)
logger.info("{0}图片下载成功".format(picname))
flag = True
except Exception as e:
logger.info("{0}图片下载失败:{1}".format(picname,e))
flag = False
return flag # 保存图片
def resave_pic(img_src,picname):
count,flag = 0,save_pic(img_src,picname)
while not flag:
flag = save_pic(img_src, picname)
count += 1
if count > 5:
break def get_data(path,nextid):
url = 'http://hhzapi.ishuhui.com/cartoon/post/ver/76906890/id/{0}.json'.format(nextid)
data = get_url(url)
if data:
server = 'http://pic04.ishuhui.com/'
source, id, title, book, number = data['source'], data['id'], data['title'], data['book_text'], data['number']
content_img = eval(data['content_img']) if data['content_img'] else {}
if source == 1: # 鼠绘汉化
makefile(path + '\\' + book, False)
title = clean(title)
filepath = path + '\{0}\{0} 第 {1} 话 {2}'.format(book,number,title)
makefile(filepath, True) # 新建文件夹
if content_img: # 下载图片
for img, imgurl in content_img.items():
imgurl = server + imgurl.replace('/upload/','')
picname = filepath + '\\'+ img
resave_pic(imgurl,picname)
logger.info("ID:{2} 第 {0} 话 {1}下载完成".format(number,title,id))
next = data['prev']
if next:
return next['id']
elif nextid == 900: # 900的时候会找不到上一页
return 899 if __name__ == "__main__":
path=sys.path[0]
nextid=get_data(path,10881)
while nextid:
nextid=get_data(path,nextid)
time.sleep(3)

四、结果如下:

  第598话 2年后 -- 第908话 世界會議開幕,共309话,3.22G,其中680和681话缺失了,接口扫了一下也没找到。

【python3】爬取鼠绘汉化的海贼王漫画的更多相关文章

  1. scrapy 动态网页处理——爬取鼠绘海贼王最新漫画

    简介 scrapy是基于python的爬虫框架,易于学习与使用.本篇文章主要介绍如何使用scrapy爬取鼠绘漫画网海贼王最新一集的漫画. 源码参见:https://github.com/liudaol ...

  2. python3爬取网页

    爬虫 python3爬取网页资源方式(1.最简单: import'http://www.baidu.com/'print2.通过request import'http://www.baidu.com' ...

  3. python3爬取女神图片,破解盗链问题

    title: python3爬取女神图片,破解盗链问题 date: 2018-04-22 08:26:00 tags: [python3,美女,图片抓取,爬虫, 盗链] comments: true ...

  4. Python3 爬取微信好友基本信息,并进行数据清洗

    Python3 爬取微信好友基本信息,并进行数据清洗 1,登录获取好友基础信息: 好友的获取方法为get_friends,将会返回完整的好友列表. 其中每个好友为一个字典 列表的第一项为本人的账号信息 ...

  5. Python3爬取人人网(校内网)个人照片及朋友照片,并一键下载到本地~~~附源代码

    题记: 11月14日早晨8点,人人网发布公告,宣布人人公司将人人网社交平台业务相关资产以2000万美元的现金加4000万美元的股票对价出售予北京多牛传媒,自此,人人公司将专注于境内的二手车业务和在美国 ...

  6. python3爬取微博评论并存为xlsx

    python3爬取微博评论并存为xlsx**由于微博电脑端的网页版页面比较复杂,我们可以访问手机端的微博网站,网址为:https://m.weibo.cn/一.访问微博网站,找到热门推荐链接我们打开微 ...

  7. python3爬取全民K歌

    Python3爬取全民k歌 环境 python3.5 + requests 1.通过歌曲主页链接爬取 首先打开歌曲主页,打开开发者工具(F12). 选择Network,点击播放,会发现有一个请求返回的 ...

  8. Python3爬取猫眼电影信息

    Python3爬取猫眼电影信息 import json import requests from requests.exceptions import RequestException import ...

  9. 利用python3 爬取 网易云 上 周杰伦所有专辑,歌曲,评论,并完成可视化分析已经歌曲情绪化分析

    这篇文章适合于python爱好者,里面可能很多语句是冗长的,甚至可能有一些尚未发现的BUG,这个伴随着我们继续学习来慢慢消解吧.接下来 我把里面会用到的东西在这里做一个简单总结吧:本文用到了两门解释性 ...

随机推荐

  1. html5 audio vedio and video.js

    查看audio play事件http://jplayer.org/HTML5.Media.Event.Inspector/ media.seekable, buffered,played这些数据 we ...

  2. 更新tableView的某个cell

    更新tableView的某个cell 异步加载完数据后更新某个cell,这应该是非常常见的使用方法了,我们经常会用reloadData. 效果: 源码: // // RootViewControlle ...

  3. Nexus 3.X(Maven仓库私服)仓库迁移与备份

    Linux 仓库迁移 Nexus的构件仓库都保存在sonatype-work目录中,该目录的位置由nexus/conf/nexus.properties配置文件指定.仓库迁移需要两个过程:备份和还原 ...

  4. [沫沫金]JavaWeb企业信息系统,增加操作记录、数据库记录

    背景 系统出现数据莫名丢失,业务人员的反馈无法复现问题.纠结了很久,最终老板发话要记录操作,通过日志进行分析重现 环境 SSH框架 目标 1.记录访问了那个方法,使用的参数及返回的内容 2.记录新增. ...

  5. 【Excel】如何用SUMIF实现SUMIFS的功能

    如何用SUMIF实现SUMIFS的功能   添加辅助列,辅助列内容为"条件区域1内容+条件区域内容2" 举个例子,我要挑选出"二车间"的"过桥过路费& ...

  6. 你可能不知道的 10 条 SQL 技巧,涨知识了!

    转自:http://mp.weixin.qq.com/s?__biz=MjM5NzM0MjcyMQ==&mid=2650076293&idx=1&sn=38f6acc759df ...

  7. ubuntu 14.4 apache2 django

    记录下自己的配置过程以及遇见的问题. 系统: Ubuntu 14.04 64 系统内置Python版本:2.7.6 先声明,我一下操作都以root身份. 若登录是非root身份,请在命令前加sudo. ...

  8. HAproxy.md

    HAProxy HAProxy是什么 HAProxy(High Available Proxy)是基于四层和七层的高可用负载均衡代理服务器,配置简单.支持多达上万条并发请求. HAProxy工作原理 ...

  9. numpy的操作

    import numpy as np ######################## # 索引 n1 = np.random.randint(0, 100, 10) # print(n1) ''' ...

  10. 10、Android--技巧

    10.1.全局获取Context的技巧 在实践中有很多的地方都可以使用到Context 弹出Toast的时候需要,启动活动的时候需要.发送广播的时候需要. 操作数据库的时候需要.使用通知的时候需要.. ...