Python 通过正则表达式快速获取电影的下载地址


Posted in Python onAugust 17, 2020

在爬取网页信息时,如果在HTML代码中通过获取标签的方式来提取电影的下载地址时,不仅要编写比较多的代码,还需要不断的确认每一层的标签是否正确,这样的操作无疑是烦琐的。如下图所示。那么通过什么方式既可以减少代码量,又可以很简单的提取指定标签的内容呢?本文将实现通过正则表达式快速获取电影的下载地址。如果对正则表达式不熟悉的读者,点击 此处 学习正则表达式。

Python 通过正则表达式快速获取电影的下载地址

在爬取网页信息的任务中,可以使用正则表达式的方式快速的提取某个标签内的指定信息,以爬取电影的下载地址为例。本案例需要注意编码格式的问题,单击鼠标右键,如图所示查看网页编码:

Python 通过正则表达式快速获取电影的下载地址

代码如下:

import re
import requests


def get_movies(url):
 # 构造请求头
 headers = {
  "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/53"
      "7.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36"
 }
 response = requests.get(url, headers=headers) # 发送请求
 response.encoding = "gb2312" # 设置编码方式
 # 判断请求是否成功 根据状态码是否等于200来判断
 if response.status_code == 200:
  # 获取每个电影详情页地址,通过正则表达式提取电影详情页地址
  # <a href="/html/gndy/dyzz/20200411/59903.html" rel="external nofollow" class="ulink">2020年动作《绝地战警:疾速追击》BD中英双字幕</a>
  movies_info = re.findall(r'<a href="(.*?)" rel="external nofollow" class="ulink">', response.text) # 返回符合表达式规则的数据列表
  print(len(movies_info))
  for url in movies_info: # 循环每个电影的详情页地址
   info_url = "https://www.ygdy8.net" + url # 拼接完整地址
   # 对电影详情页发送请求
   movies_info_response = requests.get(info_url, headers=headers)
   movies_info_response.encoding = "gb2312" # 设置编码方式
   # 通过表达式匹配电影的下载地址
   download_url = re.findall(r'<a href=".*?" rel="external nofollow" >(.*?)</a></td>', movies_info_response.text)
   print(download_url)


if __name__ == '__main__':
 get_movies("https://www.ygdy8.net/html/gndy/dyzz/index.html")

运行结果如下:

['ftp://ygdy8:ygdy8@yg39.dydytt.net:8014/阳光电影www.ygdy8.com.名字之歌.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg90.dydytt.net:6015/阳光电影www.ygdy8.com.我仍然相信.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg18.dydytt.net:8018/阳光电影www.ygdy8.com.阿肯色.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg39.dydytt.net:4028/阳光电影www.ygdy8.com.惊天营救.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg90.dydytt.net:8067/阳光电影www.ygdy8.com.狩猎的时间.BD.1080p.韩语中字.mkv']
['ftp://ygdy8:ygdy8@yg18.dydytt.net:7018/阳光电影www.ygdy8.com.7号房的礼物.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg18.dydytt.net:8017/阳光电影www.ygdy8.com.格蕾特和韩塞尔.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg18.dydytt.net:3028/阳光电影www.ygdy8.com.看不见的女人.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg90.dydytt.net:7067/阳光电影www.ygdy8.com.我们永不言弃.HD.1080p.国语中字.mkv']
['ftp://ygdy8:ygdy8@yg18.dydytt.net:4026/阳光电影www.ygdy8.com.军人的妻子.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg90.dydytt.net:6014/阳光电影www.ygdy8.com.匹诺曹.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg18.dydytt.net:4025/阳光电影www.ygdy8.com.叶问4:完结篇.BD.1080p.国粤双语中字.mkv']
['ftp://ygdy8:ygdy8@yg39.dydytt.net:3024/阳光电影www.ygdy8.com.节奏组.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg39.dydytt.net:8013/阳光电影www.ygdy8.com.江湖儿女.BD.1080p.国语中字.mkv']
['ftp://ygdy8:ygdy8@yg18.dydytt.net:3026/阳光电影www.ygdy8.com.琼斯先生.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg39.dydytt.net:7013/阳光电影www.ygdy8.com.地球最后的夜晚.BD.1080p.国语中字.mkv']
['ftp://ygdy8:ygdy8@yg39.dydytt.net:3023/阳光电影www.ygdy8.com.梦幻岛.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg18.dydytt.net:4023/阳光电影www.ygdy8.com.拧紧.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg39.dydytt.net:4026/阳光电影www.ygdy8.com.悲惨世界.BD.1080p.法语中字.mkv']
['ftp://ygdy8:ygdy8@yg18.dydytt.net:4022/阳光电影www.ygdy8.com.真人快打传奇:蝎子的复仇.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg18.dydytt.net:7016/阳光电影www.ygdy8.com.我的间谍.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg39.dydytt.net:3021/阳光电影www.ygdy8.com.从不,很少,有时,总是.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg39.dydytt.net:4025/阳光电影www.ygdy8.com.绝地战警:疾速追击.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg39.dydytt.net:3020/阳光电影www.ygdy8.com.绅士们.BD.1080p.中英双字幕.mkv']
['ftp://ygdy8:ygdy8@yg90.dydytt.net:8065/阳光电影www.ygdy8.com.二分之一的魔法.BD.1080p.中英双字幕.mkv']
1

笔者在这里声明,笔者写文章只是为了 学习交流,以及让更多学习Python基础的读者少走一些弯路,节省时间,并不用做其他用途,如有侵权,联系删除即可。

到此这篇关于Python 通过正则表达式快速获取电影的下载地址的文章就介绍到这了,更多相关Python 正则表达式下载地址内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python的tkinter布局之简单的聊天窗口实现方法
Sep 03 Python
介绍Python中几个常用的类方法
Apr 08 Python
Python中getattr函数和hasattr函数作用详解
Jun 14 Python
Python变量和数据类型详解
Feb 15 Python
解决DataFrame排序sort的问题
Jun 07 Python
python和shell监控linux服务器的详细代码
Jun 22 Python
Python 找出出现次数超过数组长度一半的元素实例
May 11 Python
使用SQLAlchemy操作数据库表过程解析
Jun 10 Python
python用Tkinter做自己的中文代码编辑器
Sep 07 Python
基于Python实现粒子滤波效果
Dec 01 Python
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
Apr 06 Python
Python实现Matplotlib,Seaborn动态数据图
May 06 Python
Python 程序员必须掌握的日志记录
Aug 17 #Python
Python使用urlretrieve实现直接远程下载图片的示例代码
Aug 17 #Python
Python 如何查找特定类型文件
Aug 17 #Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
Aug 17 #Python
无需压缩软件,用python帮你操作压缩包
Aug 17 #Python
用Python制作mini翻译器的实现示例
Aug 17 #Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
Aug 17 #Python
You might like
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
一个PHP操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
2013/06/09 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
JQuery 入门实例1
2009/06/25 Javascript
Extjs学习笔记之九 数据模型(上)
2010/01/11 Javascript
JavaScript中获取未知对象属性的代码
2011/04/27 Javascript
基于json的jquery地区联动效果代码
2011/07/06 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
jQuery动态添加
2016/04/07 Javascript
jQuery插件扩展extend的简单实现原理
2016/06/24 Javascript
jQuery 3.0十大新特性
2016/07/06 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
react-router browserHistory刷新页面404问题解决方法
2017/12/29 Javascript
小程序云开发获取不到数据库记录的解决方法
2019/05/18 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
2019/12/06 Javascript
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
基于DataFrame改变列类型的方法
2018/07/25 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
Python for循环搭配else常见问题解决
2020/02/11 Python
Matplotlib自定义坐标轴刻度的实现示例
2020/06/18 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
Html5新标签解释及用法
2012/02/17 HTML / CSS
美国第一大药店连锁机构:Walgreens(沃尔格林)
2019/10/10 全球购物
什么叫应用程序域?什么是托管代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释?
2012/05/23 面试题
过程装备与控制工程专业个人的求职信
2013/12/01 职场文书
马智宇结婚主持词
2014/04/01 职场文书
逃课打麻将检讨书
2014/10/05 职场文书
学校政风行风整改方案
2014/10/25 职场文书
开学典礼观后感
2015/06/15 职场文书