当前位置: 首页 > 后端技术 > Python

一篇文章教你使用Python网络爬虫获取Mikan动画资源

时间:2023-03-25 20:41:35 Python

【1.【项目背景】【MikanProject——MikanProject】:新一代动漫下载网站。是专门为喜欢动漫的朋友打造的动漫视频在线播放网站。第一时间为大家分享最新的动漫资源,每天精选优质动漫推荐。[2。项目目标】实现动画种子链接的获取,下载并保存到文件中。[3.涉及的库和网站]1.网址如下:https://mikanani.me/Home/Classic/{}2.涉及的库:requests,lxml,fake_useragent3,软件:PyCharm[4.项目分析】首先需要解决如何请求下一页的URL的问题。您可以点击下一页的按钮,观察网站的变化如下:https://mikanani.me/Home/Classic/1https://mikanani.me/Home/Classic/2https://mikanani.me/home/Classic/3当点击下一页时,Classic/()每增加一页就会加1,将转换后的变量替换为{},然后使用for循环遍历URL,实现多次URL请求。[5.反爬措施】1、获取正常的http请求头,请求时设置这些正常的http请求头。2.使用fake_useragent生成随机UserAgent进行访问。[6.项目实现】1、我们定义一个类class继承object,然后定义init方法继承self,再定义一个main函数main继承self。导入所需的库和URL。importrequestsfromlxmlimportetreefromfake_useragentimportUserAgentclassMikan(object):def__init__(self):self.url="https://mikanani.me/Home/Classic/{}"defmain(self):passif__name__==‘__main__':Siper=Mikan()Siper.main()2.主方法(main):for循环实现多个网页请求。stat=int(input("start:"))end=int(input("end:"))forpageinrange(stat,end+1):url=self.url.format(page)print(url)3.随机生成UserAgent。foriinrange(1,50):self.headers={'User-Agent':ua.random,}4.发送请求得到响应,页面回调,方便下次请求。defget_page(self,url):res=requests.get(url=url,headers=self.headers)html=res.content.decode("utf-8")返回html5,xpath解析一级页面数据,对于循环遍历完成的URL,获取二级页面的URL。parse_html=etree.HTML(html)one=parse_html.xpath('//tbody//tr//td[3]/a/@href')forliinone:yr="https://mikanani.me"+li6。对于二级页面请求,首先找到页面的父节点,遍历for循环,然后使用path获取torrent的下载地址。完成种子链接地址。tow=parse_html2.xpath('//body')foriintow:four=i.xpath('.//p[@class="episode-title"]//text()')[0].strip()fif=i.xpath('.//div[@class="leftbar-nav"]/a[1]/@href')[0].strip()#print(four)t="https://mikanani.me"+fifprint(t)7.保存在word文档中。dirname="./seed/"+four[:15]+four[-20:]+'.torrent'#print(dirname)html3=requests.get(url=t,headers=self.headers).contentwithopen(dirname,'wb')asf:f.write(html3)print("\n%s下载成功"%四)8、调用方法实现功能。html=self.get_page(url)self.parse_page(html)[7.效果展示】1、运行程序,在控制台中进入开始页面和结束页面,如下图所示。2、在控制台显示下载成功的图片信息,如下图。3.保存.torrent文件。4.如何打开种子文件?先上传到百度云盘,如下图。5、双击进行分析下载,如下图所示。[八。总结】1、不建议抓取太多数据,容易造成服务器负载,试一下就好了。2、本文针对python爬Mikan项目的难点和关键点,以及如何防止反爬,提供了相对的解决方案。3.介绍了如何连接字符串和如何转换列表。4、欢迎大家积极尝试。有时候看别人实现很简单,但是到了自己实现的时候,总会出现各种各样的问题。不要野心太大,努力理解得更深刻。5.MikanProject还提供每周专栏。每天都能看到好看的动漫。专为喜欢动漫的朋友打造的动漫视频。6、需要本文源码的朋友可以在后台回复“动漫资源”获取。看完这篇文章你有收获吗?请转发分享给更多的人加入IT分享之家群,请在微信后台回复【进群】如果想深入了解Python网络爬虫和数据挖掘,可以上专业网站:http://pdcfighting.com/