python实战-HTML形式爬虫-批量爬取电影下载链接

news/2024/10/17 7:10:58/

文章目录

      • 一、前言
      • 二、思路
        • 1、网站返回内容
        • 2、url分页结构
        • 3、子页面访问形式
        • 4、多种下载链接判断
      • 三、具体代码的实现
      • 四、总结

一、前言

  喜欢看片的小伙伴,肯定想打造属于自己的私人影院,在线观看的话会有很多限制,所以可以到专门下载电影的网站下载自己想看的电影,如果想要下载大量电影的话,一个一个手点击页面去点击下载链接,实在让人崩溃,那么可以通过技术手段方便我们获取电影链接,看过我前面文章的小伙伴就知道了,我们可以采用python爬虫的形式去批量爬取电影下载链接,然后批量下载,岂不美哉。

  对python爬虫还没有了解的小伙伴可以先看看这一片内容(基于python爬虫快速入门),上篇在html形式讲解的代码示例就以及获取了子页的链接,那么接下来将就是继续上手实战,敏感内容我会打码,主要学习的是思路。

https://blog.csdn.net/syl321314362/article/details/127780756

二、思路

  首先我们第一步先是分析目标网站的请求结构,页面是怎么返回渲染的,分页形式是怎么样的,子页面是怎么样的形式访问,电影下载链接有没有不同形式的,所以弄大体的结构才有好的思路,把思路用代码的方式实现。

1、网站返回内容

  首先我们可以打开浏览器的开发工具页面(快捷键 F12),通过网络请求查看对应的请求去判断,也可以直接python写一个request请求,看看response.text返回的是不是想要的页面html。

在这里插入图片描述

2、url分页结构

  电影肯定有很多,所以制作网页的时候要采取分页展现的设计,所以要点击分页栏,查看地址栏url的变化,滚动式加载也是这种思路,观察地址栏url或者网络请求的变化。
在这里插入图片描述

在这里插入图片描述

  可以看到地址栏中的url明显的有变化,所以这里一共有212页所以就是list_23_1.html 到 list_23_212.html,我们去页面证实一下,果然没错。
在这里插入图片描述

  所以批量爬取就要搞清楚目标的页面结构,那么我们知道有这么多页的时候就要通过for循环去遍历这212页的内容,去匹配获取子页面。

3、子页面访问形式

  通过子页面与主页的url拼接即可访问,url = “https://xxxx” + “/html/gndy/dyzz/20221109/63138.html”

在这里插入图片描述
在这里插入图片描述

4、多种下载链接判断

  每个子页面的的链接展现的形式是不同的,所以我们要多点击几个子页观察有哪些不同的地方,在爬取链接的时候就需要多加注意多加判断。

  实例就有两种形式的链接ftp和magnet,所渲染的标签样式与视频后缀名也是有些差别的。

在这里插入图片描述

在这里插入图片描述

三、具体代码的实现

  运行前先安装lxml库

pip install lxml
import re
import time
import urllib3
import requests
from lxml import etree
from urllib.parse import unquote
# 解决requests请求出现的InsecureRequestWarning错误
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1'
}for i in range(1, 215):# 分页页面首页indexUrl = "https://www.xxxxx.com/html/gndy/dyzz/list_23_{}.html".format(i)print("="*10 + indexUrl + "="*10)res = requests.get(indexUrl, headers=header, verify=False)if res.status_code == 200:lxml_tree = etree.HTML(res.content)# 获取分页页面中的电影页面路径href_name = lxml_tree.xpath('//div[@class="co_content8"]//table//a//@href')if len(href_name) < 25:lxml_tree = etree.HTML(res.text)href_name = lxml_tree.xpath('//div[@class="co_content8"]//table//a//@href')for urlPath in href_name:if "/html/gndy/dyzz/" in urlPath:try:# 拼接详细电影页面urlurl = "https://www.xxxxx.com" + urlPathres2 = requests.get(url=url, headers=header, verify=False)if res2.status_code == 200:# 防止中文乱码res2.encoding = "GBK"lxml_tree2 = etree.HTML(res2.text)# 获取电影下载链接href_name2 = lxml_tree2.xpath('//div[@id="Zoom"]//a//@href')if href_name2:# 正则匹配获取mkv或mp4格式链接或rmvb格式pattern = re.compile(r'.*.mkv|.*.mp4|.*.rmvb')film = pattern.search(unquote(href_name2[0]))[0]print(film)#下载链接写入文本with open("allFilm.txt", "a", encoding="utf-8") as f:f.write(film + "\n")else:# 记录访问错误的页面with open("fail.txt", "a", encoding="utf-8") as f:f.write(url + "\n")time.sleep(1)except Exception as e:print("errer: ", e)continueprint("total: ", len(href_name))

在这里插入图片描述
在这里插入图片描述

四、总结

  技术是一把双刃剑,就看持剑的人是怎么想的,爬虫有风险,操作需谨慎,爬虫被判刑的例子比比皆是,需谨慎。关注我,微信搜索艺说IT公众号,后续有这两种形式的python实战爬虫还有反防爬虫(反反爬虫)等技术干货,并附带源码,对你有帮助请点个赞,感谢各位帅哥美女。
在这里插入图片描述


http://www.ppmy.cn/news/598224.html

相关文章

可道云 docker 群晖_群晖NAS安装影视客户端新手教程,手把手教你NAS怎么下载电影...

群晖NAS安装影视客户端新手教程,手把手教你NAS怎么下载电影 前言 故事的起点在2016年,那时候中了nas的毒,自己diy了一台黑裙,连安装加使用,把玩了一周后,感到一阵索然无味。。。 然后这台nas踏踏实实摆在客厅给路由器当底座用了两年半。。。 说到NAS,近期的翻车版@蜗牛星…

python爬取电影天堂的下载链接

python爬取电影天堂dytt8的下载链接 电影天堂下载链接都是magnet的&#xff0c;搞下来想下就下没有广告建一个main.py一个一个挨着去爬肯定慢啊&#xff0c;建一个多线程的去爬 mui.py多线程有可能会发生WinError 10060报错&#xff0c;使用time.sleep(1)避免 电影天堂下载链接…

怎么下载php文件的电影,下电影下下来是.php格式,请问怎么打开?

下载暴风转码,转为别的格式php格式的视频怎么办,楼主用的是何种2113云盘下载的?至从去5261年国家下规定4102,现在云盘基本上都不准1653储存电专影,就算存了,如果发了外属链共享,很容易被删除。建议楼主不要使用云盘上传、下载影片,浪费时间跟精力不说,而且对自己心情影…

python爬虫下载影视网站的电影

python爬虫下载影视网站的电影 我这边选取了vip网站F12打开调试抓包模式搜索影片的名称, 观察看看给那个url地址发送了请求, 我看到了 这个请求需要携带发送数据 而这个数据就是我们要的影片名字 这样的就话就可以构建第一段代码 class Video():"""获取电影信…

如何找到电影的下载链接

今天要讨论的搜索技巧是如何能找到电影的下载链接&#xff0c;通过以下的搜索技巧&#xff0c;你就不需要费劲的去好几个网站上寻找下载链接了。 下面使用的是Google dorking查询语法来进行下载链接的搜索&#xff1a; 需要用的工具&#xff1a; 1、 浏览器 2、 一点耐心 第…

爬虫python下载电影_python爬虫:抓取下载电影文件,合并ts文件为完整视频

目标网站:https://www.88ys.cc/vod-play-id-58547-src-1-num-1.html 反贪风暴4 对电影进行分析 我们发现,电影是按片段一点点加载出来的,我们分别抓取所有ts文件,然后合并成一个完整的文件即可下载到完整电影 代码如下: # https://www.88ys.cc/vod-play-id-58547-src-1…

android下载文件地址,安卓迅雷下载的文件在哪里迅雷下载文件存放位置-独木成林...

其实一般播放器都会有显示下载文件的默认路径的。按照路径提供的位置在手机文件管理器就很容易能找到&#xff0c;像手机迅雷的默认保存路径是在手机存储卡的 “ThunderDownload”文件夹下。下面就简单演示查找步骤供参考。 查找手机迅雷下载的视频文件方法 我们先来看看手机迅…

如何利用python下载电影_一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接...

点击上方“IT共享之家”,进行关注 回复“资料”可获赠Python学习福利 【一、项目背景】 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态。 今天小编以电影天堂为例,带大家更直观的去看自己喜欢的电影,…