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

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

代码如下:

import re
import requestsdef 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" class="ulink">2020年动作《绝地战警:疾速追击》BD中英双字幕</a>movies_info = re.findall(r'<a href="(.*?)" 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=".*?">(.*?)</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']

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

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

通过正则表达式快速获取电影的下载地址!正则-永远滴神!相关推荐

  1. Python每日一练(17)-通过正则表达式快速获取电影的下载地址

    在爬取网页信息时,如果在HTML代码中通过获取标签的方式来提取电影的下载地址时,不仅要编写比较多的代码,还需要不断的确认每一层的标签是否正确,这样的操作无疑是烦琐的.如下图所示.那么通过什么方式既可以 ...

  2. 夺命雷公狗---DEDECMS----27dedecms电影的下载地址的完成

    我们现在要完成的是电影的下载地址这里: 我们的下载地址都是放在我们的dede_addonmovie(附加表)里面去才可以的,因为下载地址的个数是不能确定的,所以我们就将所有的下载地址存放到一个字段里面 ...

  3. 4k超清壁纸APP抓包获取所有壁纸下载地址

    4k超清壁纸APP抓包获取所有壁纸下载地址   Lan   2020-05-09 10:38   288 人阅读  0 条评论 额,最近发现手机壁纸似乎有段时间没换了,刚好又看到网上有一个APP叫做4 ...

  4. 获取千千静听歌词下载地址(Delphi) 源码+Demo发布

    之前做过通过千千静听歌词服务器下载歌词(Delphi版) 这个Demo程序,做完之后将主要过程封装在一个单元里了. 现在拿出来吧.也没有什么好保留的,呵呵. 主要封装了两个函数 function Lr ...

  5. Spring Boot 永远滴神!10分钟快速入门

    为什么是 SpringBoot 因为目前开发 WEB 应用,Spring Boot 是启动 Spring 项目最快最流行的方式了.无论我们要构建一个什么样的应用,它都可以让我们尽可能快的启动运行起来. ...

  6. 破解网吧电影,获取电影的实际地址!

    本来没什么兴趣去搞这些东西的,但是这天心血来潮去网吧玩,最近都在看<钢之炼金术师 FA>,想在网吧看看,果然网吧提供了1-54集的高清播放,但是···,我不想全部都在网吧看啊,想复制几集回 ...

  7. Vue快速入门(含下载地址)

    Vue快速入门 文档 想学习vue,最好的文档就是官网 这里列出几个: Vue.js 介绍 - Vue.js 中文文档 (bootcss.com) Vue.js 教程 | 菜鸟教程 (runoob.c ...

  8. HtmlAgilityPack 爬虫批量获取百度音乐下载地址一

    2014年8月19日15:26:16 说明:  有些网友发私信或在资源下留言问现在为什么无法抓取百度音乐排行榜了,是不是源代码有问题或代码不全面. 首先感谢你的关注,其次想说这个小工具仅仅是通过抓取百 ...

  9. java获取gbk文件名 linux_java获取真实的下载地址和下载文件名

    2010-04-14 比如有这样一个地址: http://www.vckbase.com/tools/downtools.asp?id=209 用下载工具打开时,能够知道其真实的下载地址和下载名称 请 ...

最新文章

  1. GARFIELD@01-18-2005
  2. android 判断有线耳机、蓝牙耳机连接
  3. Push Notification (1)Google C2DM 服务
  4. 启明云端分享|sigmastar debug工具使用说明(一)
  5. 女神节爆猛料!. NET程序员男女比例公布!
  6. 由partition看窗口函数
  7. vue 方法获取返回值_vue中子组件怎么获取父组件中的方法的返回值
  8. 【Elasticsearch】不常用 length filer、ngram filter、trim filter、truncate filter、unique filter、synonym token
  9. linux下使用vi操作
  10. go结构体初始化_golang中结构体的初始化方法(new方法) | 学习笔记
  11. 【Python】彩色图片转为灰度图(4行脚本搞定)
  12. 二级缓存:EHCache的使用
  13. 【重大改革】吴恩达:孩子会识字后立马教她Python!
  14. CUDA C编程(二)CUDA编程模型
  15. 风变python怎么样_风变编程python到底怎么样?可以自学吗?
  16. java 月份缩写_英文月份简写
  17. 离线强化学习-2重要性采样和Duality介绍(劝退版)
  18. Bootstrap3和Bootstrap4区别
  19. 爱江山更爱美人服务器维修怎么,爱江山更爱美人落星院详细玩法攻略
  20. 使用苹果cms常见问题整理

热门文章

  1. openCV study-Module1_图像处理基础
  2. DSP-ADAU1452参考音设置方法
  3. 发那科FANUC电路板图纸 全套驱动图纸 原理图
  4. Qt编写安防视频监控系统51-功能激活
  5. 为什么你需要RS485转LoRaWAN的数据采集器?
  6. 继电保护整定计算程序简介
  7. 【xtku】熟知idown万用下载器的使用办法
  8. 腾讯产品总监:我工作十年,内心仍无比恐慌
  9. 项目33-教师兼干部类
  10. 为什么你的字体和别人的字体不一样(下载的word启用编辑后字体发生变化)