一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接
【一、项目背景】
相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态。
今天小编以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来。

【二、项目准备】
首先 我们第一步我们要安装一个Pycharm的软件。Pycharm软件安装可以看这篇教程:Python环境搭建—安利Python小白的Python和Pycharm安装详细教程。
电影天堂网的网址:
https://www.ygdy8.net/html/gndy/dyzz/list_23_1.html
我们需要下载几个库,怎么下载呢?首先打开Pycharm点击File再点开setting。

打开后会出现这个界面点击你的项目名字(project:(你的项目名字))project interpreter点击加号下载我们需要的库本项目需要(requests,requests,time,re模块),如下图所示。

如果不会加载解释器的话,可以参考这篇手把手教程:安装好Pycharm后如何配置Python解释器简易教程。
如果还缺少相应库的话,可以按照如下方式进行下载和安装。

【三、项目实施】
我们需要(requests,requests,time,re模块 ),如下图所示。

用封装方法去实现各个部分功能。首先要写一个框架 :构造一个类FilmSky 然后定义一个—init方法里继承(self),再定义一个主方法(main)。最后实现这个main方法。代码如下:

这个time是用于防止反爬,设置的时间延时。
首先我们来分析一下这个网址下一页得到特点。

通过点击了三页我们会发现地址都是在原有的基础上“23—3,4,5”这样的变化。
我们可以用{}去代替变化的值就像这样:
https://www.ygdy8.net/html/gndy/dyzz/list_23_{}.html
这样我们在inti方法初始化url地址和构造请求头。

在主方法main函数里边用for循环实现遍历网址。

得到下图这样的结果:

说明你已经成功一半了加油!!
现在我们需要对这些网址发生请求,为了更直观的看出来,我们用一个类写。
我们用requests发生请求 这个网站的编码是gbk (怎么看网站的编码?)。
打开一个网站右键检查在header的标签,以这个网站为例,可以看到charset=“gb312”。
这个gb2312就是编码 我们常见的编码方式有2种(utf_8, gbk)。


我们可以验证一下是不是真的请求到了。使用Print(html)看到这个结果(一个完整的html网页)说明请求成功。

我们再定义这个方法(对我们的网页代码进行解析)。
我们用正则表达式 来解析数据 我们右键检查可以看到我们要的网站在table里面的

所以我们可以先找到table,一层一层的去找,可以参考一下下面的图。

正则表达式就是(.?)里面就是你想要得到的内容,“.?”就是可以省略其中的标签,取到你想要地区那一层。for循环遍历得到每个网址,点击这些网址我们要对二级页面发生请求,并解析它。
因为在网页网址上的链接有一些是空的 ,所有这样会导致电影下载的链接不匹配。所以我们要加个判断,如果下载链接的长度大于0那么就照常显示,否则就给它一个空值,这样就不会不对应了。最后返回这个结果,如下图所示。

点开第二级页面如图右键点击下载链接,如下图所示:


我们用正则表达式解析 得到我们下载链接地址,如下图所示:

看去了不是很美观,我们把链接处理一下,如下图所示:

得到结果,如下图所示:

最后我们用把数据保存在一个字典加上下载链接和电影名字:

最后我们优化一下请求的代码有点重复 我们优化一下;
用一个值去保存说明请求头的内容以后请求我们只有调用这个方法进行请求就好,如下图所示:

程序运行之后可以看到效果图,如下图所示:

点击蓝色的链接就可以这个下载(要下载迅雷 迅雷下载更快哇)
这样是不是能够更直观的看出你要电影啦?点击即可下载噢!
【五、总结】
本文基于Python网络爬虫技术,提供了一种更直观的去看自己喜欢的电影并且方便下载的方式。
不建议抓取太多,容易使得服务器负载。
需要本文代码的话,后台回复“电影天堂”四个字即可获取。
看完本文有收获?请转发分享给更多的人
IT共享之家
入群请在微信后台回复【入群】

往期精彩文章推荐:
想学习更多Python网络爬虫与数据挖掘知识,可前往专业网站:http://pdcfighting.com/
一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接的更多相关文章
- 一篇文章带你用Python网络爬虫实现网易云音乐歌词抓取
前几天小编给大家分享了数据可视化分析,在文尾提及了网易云音乐歌词爬取,今天小编给大家分享网易云音乐歌词爬取方法. 本文的总体思路如下: 找到正确的URL,获取源码: 利用bs4解析源码,获取歌曲名和歌 ...
- 一篇文章教会你理解Scrapy网络爬虫框架的工作原理和数据采集过程
今天小编给大家详细的讲解一下Scrapy爬虫框架,希望对大家的学习有帮助. 1.Scrapy爬虫框架 Scrapy是一个使用Python编程语言编写的爬虫框架,任何人都可以根据自己的需求进行修改,并且 ...
- 利用Python网络爬虫抓取微信好友的签名及其可视化展示
前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,以及利用Python网络爬虫抓取微信好友的所 ...
- 如何利用Python网络爬虫抓取微信朋友圈的动态(上)
今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...
- 如何利用Python网络爬虫爬取微信朋友圈动态--附代码(下)
前天给大家分享了如何利用Python网络爬虫爬取微信朋友圈数据的上篇(理论篇),今天给大家分享一下代码实现(实战篇),接着上篇往下继续深入. 一.代码实现 1.修改Scrapy项目中的items.py ...
- 利用Python网络爬虫爬取学校官网十条标题
利用Python网络爬虫爬取学校官网十条标题 案例代码: # __author : "J" # date : 2018-03-06 # 导入需要用到的库文件 import urll ...
- 利用Python网络爬虫抓取微信好友的所在省位和城市分布及其可视化
前几天给大家分享了如何利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例,感兴趣的小伙伴可以点击链接进行查看.今天小编给大家介绍如何利用Python网络爬虫抓取微信好友的省位和城市,并且将 ...
- 如何利用Python网络爬虫抓取微信好友数量以及微信好友的男女比例
前几天给大家分享了利用Python网络爬虫抓取微信朋友圈的动态(上)和利用Python网络爬虫爬取微信朋友圈动态——附代码(下),并且对抓取到的数据进行了Python词云和wordart可视化,感兴趣 ...
- 利用Python网络爬虫采集天气网的实时信息—BeautifulSoup选择器
相信小伙伴们都知道今冬以来范围最广.持续时间最长.影响最重的一场低温雨雪冰冻天气过程正在进行中.预计,今天安徽.江苏.浙江.湖北.湖南等地有暴雪,局地大暴雪,新增积雪深度4-8厘米,局地可达10-20 ...
随机推荐
- 笔记本安装ubuntu18.08,解决过程中出现的各种问题
笔记本安装ubuntu18.08,解决过程中出现的各种问题 1.做启动U盘 在官网下载要安装的镜像,使用软碟通制作U盘安装盘 文件 -- 打开 然后 启动 -- 写入硬盘映像 -- 选择你的u盘 -- ...
- 箭头函数的this指向问题-一看就懂
OK,对于箭头函数的this 用一句话概括:箭头函数中的this指向的是定义时的this,而不是执行时的this. 如果上面这句话听的是懂非懂或者完全不懂的,没关系,下面会有案例讲解. 举个栗子 来看 ...
- An example shows several CIM-XML extension headers
The example below shows several CIM-XML extension headers for a GetClass operation on the root/cimv2 ...
- 透彻理解C++11新特性:右值引用、std::move、std::forward
目录 浅拷贝.深拷贝 左值.右值 右值引用类型 强转右值 std::move 重新审视右值引用 右值引用类型和右值的关系 函数参数传递 函数返还值传递 万能引用 引用折叠 完美转发 std::forw ...
- linux和windows互传文件、用户配置文件和密码配置文件、用户组管理、用户管理...
linux和windows互传文件 第一种:在linux主机上下载lrzsz软件包 1.yum install lrzsz 2.通过rz命令上传window的文件到linux主机上 用过sz 文件名下 ...
- 无向图求割点(找桥)tarjan
本博客参考了李煜东的<算法竞赛进阶指南>,大家要是觉得这篇文章写的不错请大家支持正版.豆瓣图书 我在之前的博客中讲解了搜索序时间戳,这次我们讲讲追溯值的概念. 追溯值: 设subtree( ...
- 2019 ICPC 银川网络赛 F-Moving On (卡Cache)
Firdaws and Fatinah are living in a country with nn cities, numbered from 11 to nn. Each city has a ...
- 一只简单的网络爬虫(基于linux C/C++)————主事件流程
该爬虫的主事件流程大致如下: 1.获取命令行参数,执行相应操作 2.读取配置文件,解析得到各种设置 3.载入各种模块 4.种子入队,开启DNS解析线程(原始队列不为空时解析) 5.创建epoll,开启 ...
- Nginx入门资料
最近在学习Nginx,记录一下自己的学习历程. 1. Nginx开发从入门到精通 (淘宝技术团队编写,值得一看) 2. <深入理解Nginx:模块开发与架构解析> 3. Nginx模块开发 ...
- 集成学习基础知识总结-Bagging-Boosting
理论 在概率近似正确((probably approximately correct)学习框架下.一个概念是强可学习的充分必要条件是这个概念是弱可学习(仅比随机猜测稍好). 要求 个体学习器要好而不同 ...