特别说明:

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

正好最近在学习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 BytesIOlogger = 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 = Trueexcept Exception as e:logger.info("{0}图片下载失败:{1}".format(picname,e))flag = Falsereturn 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 += 1if count > 5:breakdef 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 + '\\'+ imgresave_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 899if __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话缺失了,接口扫了一下也没找到。

转载于:https://www.cnblogs.com/TurboWay/p/9243971.html

【python3】爬取鼠绘汉化的海贼王漫画相关推荐

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

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

  2. Python3 爬取豆瓣电影信息

    原文链接: Python3 爬取豆瓣电影信息 上一篇: python3 爬取电影信息 下一篇: neo4j 查询 豆瓣api https://developers.douban.com/wiki/?t ...

  3. 用python3爬取百度首页

    用python3读取百度首页 代码 爬取百度首页 import urllib.request import urlliburl="http://www.baidu.com/" ht ...

  4. Python2 Python3 爬取赶集网租房信息,带源码分析

    *之前偶然看了某个腾讯公开课的视频,写的爬取赶集网的租房信息,这几天突然想起来,于是自己分析了一下赶集网的信息,然后自己写了一遍,写完又用用Python3重写了一遍.之中也遇见了少许的坑.记一下.算是 ...

  5. python3爬取百度图片

    python3爬取百度图片 最终目的:能通过输入关键字进行搜索,爬取相应的图片存储到本地或者数据库 首先打开百度图片的网站,搜索任意一个关键字,比如说:水果,得到如下的界面 分析: 1.百度图片搜索结 ...

  6. Python3爬取影片入库

    Python3爬取影片入库 1.服务器说明 [root@openshift maoyan]# cat /etc/redhat-release CentOS Linux release 7.4.1708 ...

  7. Python3爬取企查查网站的企业年表并存入MySQL

    Python3爬取企查查网站的企业年表并存入MySQL 本篇博客的主要内容:爬取企查查网站的企业年报数据,存到mysql中,为了方便记录,分成两个模块来写: 第一个模块是爬取数据+解析数据,并将数据存 ...

  8. Python3爬取国家统计局官网2019年全国所有城市(2020年更新)

    Python3爬取国家统计局官网2019年全国所有城市(2020年更新) 一级城市爬取 一级城市爬取 由于最近需要用到所有城市的数据,故从统计局爬取19年的一级城市数据 import random i ...

  9. python3爬取巨潮资讯网站年报数据

    python3爬取巨潮资讯网站年报数据 2018年年底巨潮资讯http://www.cninfo.com.cn改版了,之前实习生从网上找的脚本不能用了,因此重新修改了下爬取脚本.最初脚本的原链接忘了, ...

最新文章

  1. 如何用python计算工资-手把手用Python教你分析运筹学薪资状况
  2. android sh 指令_Java/Android中实现Shell命令
  3. 从偶然的机会发现一个mysql特性到wooyun waf绕过题
  4. face3000 c++ 代码运行
  5. 9 线性表-队列-链式存储
  6. 51CTO六周年,我不得不说的话!【我与51CTO的故事】
  7. 用vs2008编写和调试linux程序 ----VisualGDB 使用教程
  8. MODSCAN32的应用
  9. python列表求平均数_python 列表平均值
  10. java换算当地时间_Java UTC时间与本地时间互相转换
  11. 搭建网站,需要几种服务器?
  12. 计算机二级关于ppt的题目,全国计算机二级题库Ppt题目考点.doc
  13. 从0到1亿,招商银行App用户增长的“道”与“术”
  14. 【PP主数据】工艺路线介绍
  15. zabbix2.0 监控华为Quidway S9306交换机实例[完整]
  16. sorted排序函数用法
  17. 卓有成效的管理者读后感及金句
  18. 起底人脸信息倒卖产业链:一次丢失,终身危险
  19. 产品PM和项目PM到底有啥区别?本文告诉你
  20. GT测试使用方法---APP工具

热门文章

  1. 分布式系统用户登录路由
  2. 共享一个查找IP所在交换机端口的方法
  3. ec200s 方案 移远_移远4GCat1无线通讯模块EC200S
  4. r语言线性回归_(R语言)线性回归:机器学习基础技术
  5. 微课竞赛系统的设计与实现所需工作条件_工作室文化建设展示(3)
  6. 设计模式复习-桥接模式
  7. hdu4998 旋转坐标系
  8. 与数据相关的运算符和伪指令 offset align ptr type lengthof sizeof label 间接寻址 间接操作数 数组 变址操作数 指针 jmp, loop
  9. 【数字信号处理】傅里叶变换性质 ( 序列傅里叶变换共轭对称性质示例 | 证明 原序列实部 x_R(n) 的 傅里叶变换 是 原序列傅里叶变换 的 共轭对称序列 )
  10. 【Groovy】编译时元编程 ( 编译时方法注入 | 使用 buildFromSpec、buildFromString、buildFromCode 进行方法注入 )