这篇教程的目的是实现漫画的爬取,并生成接口




一:效果展示:

开门见山,首先来展示看完此篇教程后,能达到的效果:

以酷酷漫画为例子:

首先是我们需要爬取的网页:寄宿学校的朱丽叶 1话 <http://comic.kukudm.com/comiclist/2160/52245/1.htm> 

截图:



然后是我们实现的效果:







进阶实现效果,循环多张并做成接口,实现整个章节漫画的爬取:




二:分析原理


原理其实很简单,就是通过Python的urllib2模块来获取整个页面的源码,再使用BeautifulSoup来分割源码的各个节点,最后再通过简单的字符串截取获得图片地址,如果有需求,还可以通过Flask-restful做成相应的接口。

环境的配置(针对Windows,如果对Python比较多的了解完全可以跳过这一步)

1.安装Python

 
 安装Python的步骤就不去详细说了,网上教程一大堆,下载稳定的2.7或者3.X版本都可以。推荐去官网下载。CMD下输入Python可以进入Python模式,则说明Python安装成功




2.安装各种模块(urllib2,BeautifulSoup,Flask-restful)

   CMD进控制台,再进入到Python安装目录\Scripts(我的目录是C:\Python27\Scripts)下,pip install 模块名
即可安装各种模块,如:

输入命令:
pip install beautifulsoup4
即可安装BeautifulSoup模块

3.代码
import urllib2 import re from bs4 import BeautifulSoup from distutils.filelist
import findall #encoding = gbk KukuComicImageBae ="http://n.1whour.com/" url =
"http://comic.kukudm.com/comiclist/2160/52245/" def getKukuComicPage(): imgList
= [] try: page = urllib2.urlopen(url+str(1)+".htm", timeout=10) data =
page.read() print data+'\n' soup = BeautifulSoup(data,"html.parser") script =
soup.findAll('script')[3].text print script+'\n' imageurl =
script.split("src=")[1].split("\"")[2].split("'")[0] print imageurl+'\n'
image_url = KukuComicImageBae+imageurl imgList.append(image_url) except
Exception as e: print('Error:', e) return imgList print getKukuComicPage()
输出结果:



 

分步骤分析:

1.获取到网页源码:

    
page = urllib2.urlopen(url+str(1)+".htm", timeout=10) data = page.read()



打印出的data即是我们需要的网页源码
<html><head> <meta http-equiv='Content-Type' content='text/html; charset=gbk'>
<title>寄宿学校的朱丽叶 1话</title> <link href='/style.css' rel='stylesheet'
type='text/css'> <script language='javascript' src='/js2/js0.js'></script>
<script language='javascript' src='/js2/js4.js'></script> </head><body> <table
width='760' border='0' cellspacing='0' cellpadding='0' align='center'>
<tr><td><iframe src='/top.htm' width='760' height='96' marginwidth='0'
marginheight='0' hspace='0' vspace='0' frameborder='0'
scrolling='no'></iframe><br><script
src="/js/play-d1.js"></script></td></tr></table> <table width='760' border='1'
align='center' cellspacing='1' bgcolor='#FFFFFF'> <tr> <td width='760'
valign='top' align='center'>寄宿学校的朱丽叶 1话 | 共50页 | 当前第1页 | 跳转至第 <input
name="page1" id="page1" value="1" type="text" class="bottom" size="3"
maxlength="3"> 页 <input type="button" class="bottom" value="确定"
onclick="window.location.href='' + document.getElementById('page1').value +
'.htm';"><br><script language='javascript'> document.write("<IMG
SRC='"+m201304d+"newkuku/2016/06/21/寄宿学校的朱丽叶/001/000150P.jpg'><span
style='display:none'><img
src='"+m201304d+"newkuku/2016/06/21/寄宿学校的朱丽叶/001/00024W7.jpg'></span>");
</script><br><script src="/js/play-d2.js"></script><img src='/images/t2.gif'
border='0' width='52' height='19'>  共50页 | <script
src='/ad/sc_soso.js'></script> | 第1页  <a
href='/comiclist/2160/52245/2.htm'><img src='/images/d.gif' border='0'
width='52' height='19'></a><script
src="/js/play-d3.js"></script></td></tr></table> <table width='760' border='0'
cellspacing='0' cellpadding='0' align='center'><tr><td colspan='0'
align='center'><script src="/js/play-d4.js"></script><br><script
src='/js/stat.js'></script></td></tr></table></body></html>



友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信