好久没写代码了,快毕业了天天闲着玩游戏刷视频,最近刷七原罪这部动漫的时候,感觉动漫更新太慢,就去追漫画,于是为了方便观看避免广告的干扰,就写了个小爬虫,顺便练习练习python…
  由于目前七原罪漫画资源好像风之动漫可以看到,所以就针对其中的漫画网页写了相应的正则(写的有点low),其中fzdm中的56是七原罪这漫画的代码,downpart为下载。
  2018.9.4更新———支持多线程下载———-
代码:

import requests
import re
import os
import threading
import timeclass fzdm:addr="https://manhua.fzdm.com/"def __init__(self,mhtype):if isinstance(mhtype,str):passelse:mhtype=str(mhtype)self.m_thread=[]self.type=mhtypeself.mhaddr=self.addr+mhtypeself.startpart="001"r=requests.get(self.mhaddr)pattern='href="(\d+)/"'result=re.search(pattern,r.content.decode('utf-8'))if result:self.endpart=result.group(1)def downloadPart(self,index):if isinstance(index,str):passelse:index=str(index)start=0url=self.mhaddr+"/"+index+"/"+"index_"+str(start)+".html"while self.downloadImage(url) == False:start+=1url=self.mhaddr+"/"+index+"/"+"index_"+str(start)+".html"def downloadPart_s_e(self,s="001",e=0):if e == 0:e=self.endpartif isinstance(s,str) == False:s=str(s)if isinstance(e,str) == False:e=str(e)index=[]while int(s)<=int(e):tmp_thread=threading.Thread(target=fzdm.downloadPart,args=(self,s,))#self.downloadPart(s)tmp_thread.start()self.m_thread.append(tmp_thread)s=str(int(s)+1)for i in self.m_thread:i.join()     def downloadImage(self,url):r=requests.get(url)isendpattern='最后一页了'result_isend=re.search(isendpattern,r.content.decode('utf-8'))imgpattern='var mhurl="(\d+/\d+/\d+\.jpg)";'result_img=re.search(imgpattern,r.content.decode('utf-8'))indexpattern='(七原罪\d+话)'result_mh=re.search(indexpattern,r.content.decode('utf-8'))time.sleep(5)if result_img:mhname=result_mh.group(1)   img=result_img.group(1)imgurl="http://p1.xiaoshidi.net/"+imgr=requests.get(imgurl)time.sleep(5)if os.path.exists("download/"+mhname):passelse:os.mkdir("download/"+mhname)filename=img.replace('/','.')f=open("download/"+mhname+"/"+filename,"wb")f.write(r.content)f.close()print('下载图片完成~')if result_isend:return Trueelse:return Falsea=fzdm("56")
a.downloadPart_s_e(277,278)

  同时下载多个章节,但是这个线程开得有点随便,应该设置一个缓冲区,限制开的线程数量,开太多线程开销太大

简单的小爬虫-漫画爬取相关推荐

  1. 如何用python做考勤_【python爬虫教程 考勤】如何用Python实现一只小爬虫,爬取拉勾网...

    python爬虫入门教程全集 千锋官网上有一些是零基础入门学习的很不错 如何用Python实现一只小爬虫,爬取拉勾网 1.首先打开拉,并搜索"java",显示出职位信息就是我们的目 ...

  2. 最简单的python爬虫实战——爬取王者荣耀皮肤及头像

    看到某公众号的一篇非常容易上手的爬虫实例,之前只是模拟登陆过,还没有爬取过数据或者文件,一直没怎么接触过json这个东西,发现也没有那么难上手,233333,总之是一次非常愉快的爬虫经历,简单又简洁的 ...

  3. Python小爬虫,爬取当前全部股票信息

    基本算是一个中小型爬虫,2000多股票信息全爬取,不知道发爬虫是否合乎规矩,因此稍微隐藏了两行超简单的代码,略懂python的人应该很轻松能补上. import requests import re ...

  4. 五分钟写一个小爬虫,爬取小说并写入txt文件

    先上代码: #-*- coding:UTF-8 -*- import requests from lxml import html url='http://www.shuge.net/html/111 ...

  5. 贴吧小爬虫之爬取源码

    在做爬虫工作之前,永远先做好笔记: 确定要爬取的url,爬取的具体内容是什么,用什么形式展现爬取到的内容. 博客的标题大家也看到了,爬取的是贴吧的源码,也就是说任何贴吧的源码都能爬. 不光第一页还要爬 ...

  6. Python小爬虫:爬取开心网日记,乐趣无穷

    项目地址: https://github.com/aturret/python-crawler-exercise 用到了BeautifulSoup4,请先安装. pip install beautif ...

  7. python3 --小爬虫(爬取美剧字幕)

    # !bin/usr/env python3 # coding=utf-8 import re import urllib.request from bs4 import BeautifulSoup' ...

  8. Python新手爬虫训练小项目《爬取彼岸图网》(超详细讲解版)

    Python新手爬虫训练小项目<爬取彼岸图网>(超详细讲解版) 这是我的第一篇文章,作为一名新手爬虫,这个算是我这几天来的努力成果,虽然代码寥寥几行但花费了大半天,新手上路还是不能只看视频 ...

  9. 实现一个go语言的简单爬虫来爬取CSDN博文(一)

    http://blog.csdn.net/tyBaoErGe/article/details/50375802?hmsr=studygolang.com&utm_medium=studygol ...

最新文章

  1. archlinux常用的包管理器
  2. Git知识点笔记-基本常识
  3. 【ESP8266】NONOS SDK开发,发送HTTP请求
  4. MyBatis-Plus 高级功能 —— 自动填充功能
  5. 2021-11-14Iterator迭代器
  6. Navicat数据库错误2003 Can not connect to Mysql Server on以及Windows无法启动mysql 错误1069
  7. 如何拉取k8s镜像_K8s 从懵圈到熟练 – 镜像拉取这件小事
  8. Vue与Element入门使用
  9. Google Ads支付宝付款功能正式上线
  10. ssms18还原数据_SSMS 18中的静态数据屏蔽
  11. 用于编写configure.in的Config语言简介
  12. K个排序链表的合并(Hard)
  13. 遥感影像预处理流程及基本概念介绍(辐射校正、辐射定标、大气校正、正射校正等)
  14. MAC快捷键还原最小化的(cmd+M)程序窗口
  15. CRC32绕过RAR密码
  16. 打造舒适搬砖环境,这些是我最想推介的桌面好物
  17. drawer的用法_drawer是什么意思_drawer的翻译_音标_读音_用法_例句_爱词霸在线词典...
  18. VisionPro斑点工具CogBlobTool
  19. 2ASK、2FSK、2PSK、2DPSK、4ASK、4FSK、4PSK、4DPSK、QPSK,以及4QAM、16QAM和MSK、GMSK这些调制和解调过程
  20. 微积分与概率论的基础知识

热门文章

  1. mysql数据库链接驱动jar包的下载(Jmeter中使用为例)
  2. Unity 实用小技巧
  3. mysql blob图片类型存储bug解决:索引超出了数组界限错误,MySqlBlob图片类型存储Bug解决:索引超出了数组界限错误_MySQL...
  4. QT软件开发之基础控件--2.5.3 QLCDNumber 数码管控件
  5. 标准工时最常用的计算方法有哪些?什么方法最好用呢?
  6. 牛客网C++刷题 万能头文件
  7. 苏宁闯入二手房市场,每套服务费仅9999元
  8. 即时通讯实时视频聊天技术提供QoS保证的方法
  9. CloudSim 4.0源码阅读笔记(功耗实例)
  10. 2021年MathorCup高校数学建模挑战赛B题三维团簇的能量预测解题全过程文档加程序