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 相关文章推荐
wxPython窗口中文乱码解决方法
Oct 11 Python
Python内置函数dir详解
Apr 14 Python
python2.7+selenium2实现淘宝滑块自动认证功能
Feb 24 Python
DataFrame中的object转换成float的方法
Apr 10 Python
OpenCV+face++实现实时人脸识别解锁功能
Aug 28 Python
python通过实例讲解反射机制
Oct 17 Python
tensorflow 获取所有variable或tensor的name示例
Jan 04 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
Jan 25 Python
详解python 降级到3.6终极解决方案
Feb 06 Python
GDAL 矢量属性数据修改方式(python)
Mar 10 Python
关于Python turtle库使用时坐标的确定方法
Mar 19 Python
Django视图类型总结
Feb 17 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
重置版战役片段
2020/04/09 魔兽争霸
有关PHP中MVC的开发经验分享
2012/05/17 PHP
php数组转成json格式的方法
2015/03/09 PHP
PHP借助phpmailer发送邮件
2015/05/11 PHP
php计算多个集合的笛卡尔积实例详解
2017/02/16 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
2019/01/17 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
js身份证验证超强脚本
2008/10/26 Javascript
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
2011/10/21 Javascript
web css实现整站样式互相切换
2013/10/29 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
JavaScript对象数组排序实例方法浅析
2016/06/15 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解
2016/07/18 Javascript
AngularJS过滤器详解及示例代码
2016/08/16 Javascript
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
一个基于react的图片裁剪组件示例
2018/04/18 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
javascript中call,apply,callee,caller用法实例分析
2019/07/24 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
2019/11/05 Javascript
[03:07]DOTA2英雄基础教程 冰霜诅咒极寒幽魂
2013/12/06 DOTA
python实现划词翻译
2020/04/23 Python
python数据结构之二叉树的遍历实例
2014/04/29 Python
在Python上基于Markov链生成伪随机文本的教程
2015/04/17 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
python自动发微信监控报警
2019/09/06 Python
浅谈python累加求和+奇偶数求和_break_continue
2020/02/25 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
为什么相对PHP黑python的更少
2020/06/21 Python
使用CSS3实现多列布局与多背景的技巧
2016/02/29 HTML / CSS
使用HTML5 Canvas API绘制弧线的教程
2016/03/22 HTML / CSS
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
环保建议书作文400字
2015/09/14 职场文书
python之django路由和视图案例教程
2021/07/26 Python
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python