python爬虫——三步爬得电影天堂电影下载链接,30多行代码即可搞定:
python爬虫——三步爬得电影天堂电影下载链接,30多行代码即可搞定:
本次我们选择的爬虫对象是:https://www.dy2018.com/index.html
具体的三个步骤:1.定位到2020必看片 2.从2020必看片中提取到子页面地址 3.进去子页面,拿到迅雷下载链接
话不多说,上代码:(这个代码还存在问题!!完整解决版本代码在下面)
import requests
import re#s1,定位到2020必看片
domain="https://www.dy2018.com"
resp=requests.get(domain,verify=False)#去掉安全验证
resp.encoding='gb2312'#一般网站会告诉你他编码格式,也可以写gbk,如果没有这一句则可能出现乱码
page=resp.text#用page表达一下,方便理解#三次正则表达式都放到一起写了,也可以写到后面
obj1 = re.compile(r"2020必看热片.*?<ul>(?P<ul>.*?)<ul>",re.S)
obj2 = re.compile(r"<a href='(?P<href>.*?)'",re.S)
obj3 = re.compile(r'◎片 名 (?P<moviename>.*?)<br />.*?<td 'r'style="WORD-WRAP: break-word" bgcolor="#fdfddf"><a href="(?P<dizhi>.*?)"',re.S)
result1=obj1.finditer(page)
for it in result1:#其实只有一个地方能匹配,所以用search也行,不必循环ul=it.group("ul")#缩小区间,就算是定位到必看片系列了#print(ul)# s2,从2020必看片中提取到子页面地址
result2=obj2.finditer(ul)#使用缩小后的区间,正则表达式找到子页面链接
child_href_list=[]#准备一个字典存所有子页面
for itt in result2:#拼接子页面的url地址,域名+子页面地址,有的需要拼接有的不需要child_href=domain+itt.group("href")#如果有需要可以用.strip("/")把/去掉child_href_list.append(child_href)#把子页面链接放到列表里
#print(child_href_list)#,循环往字典添加子页面网站之后可以打印一下看看网址对不对#s3,进去子页面,拿到迅雷下载链接
for href in child_href_list:child_resp=requests.get(href,verify=False)#循环进入子页面并去掉安全验证child_resp.encoding = 'gb2312' #修改编码格式page2=child_resp.text #用page2表示result3=obj3.search(page2) #也是只有一处能匹配,所以searchprint(result3.group("moviename"))print(result3.group("dizhi"))
部分结果代码:
疯狂原始人2
magnet:?xt=urn:btih:53735832ac86bf81d0d6ded5ec8476e3181cb36f&dn=[电影天堂www.dytt89.com]疯狂原始人2-2020_BD国英双语中英双字.mp4&tr=http://t.t789.me:2710/announce&tr=http://t.t789.co:2710/announce&tr=http://t.t789.vip:2710/announce
C:\pythonProject2\venv\lib\site-packages\urllib3\connectionpool.py:1013拆弹专家2
magnet:?xt=urn:btih:1c5596857e6fa9937ba777485d74c9166c4d334d&dn=[电影天堂www.dytt89.com]拆弹专家2-2020_HD国语中字.mp4&tr=http://t.t789.me:2710/announce&tr=http://t.t789.co:2710/announce&tr=http://t.t789.vip:2710/announce
C:\pythonProject2\venv\lib\site-packages\urllib3\connectionpool.py:1013
存在问题:(已解决,往下看)
由于我是小白刚刚上手,所以存在一个问题不知怎么解决:
最后一部电影的正则表达式与前面的不同,不知道这个网页怎么搞的,造成的影响就是原本标记结束的位置无法结束,导致多爬出了一些其他内容。
虽然也包含下载链接,但是不方便阅读,如果有大佬可以帮忙解决一下就好啦!
具体情况:
龙牌之谜</p> <p>◎年 代 2019</p> <p>◎产 地 中国大陆/俄罗斯</p> <p>◎类 别 动作/奇幻/冒险</p> <p>◎语 言 俄语/英语/汉语普通话</p> <p>◎字 幕 中文字幕</p> <p>◎上映日期 2019-08-16(中国大陆)</p> <p>◎豆瓣评分 3.7/10 from 2659 users</p> <p>◎IMDb评分 4.8/10 from 133 users</p> <p>◎文件格式 x264 + ACC</p> <p>◎视频尺寸 1280 x 720</p> <p>◎文件大小 1476 MB</p> <p>◎片 长 120 Mins</p> <p>◎导 演 伊哥·斯坦普陈科 Oleg Stepchenko</p> <p>◎主 演 成龙 Jackie Chan</p> <p> 阿诺·施瓦辛格 Arnold Schwarzenegger</p> <p> 杰森·弗莱明 Jason Flemyng</p> <p> 姚星彤 Xingtong Yao</p> <p> 马丽 Li Ma</p> <p> 李�� Yu Li</p> <p> 刘智福 Lance Luu</p> <p> 刘智堂 Charles Luu</p> <p> 刘智满 Mark Luu</p> <p> 李萌萌 Mengmeng Li</p> <p> 安娜·邱丽娜 Anna Churina</p> <p> 尤里·科洛科利尼科夫 Yuri Kolokolnikov</p> <p> 巴维尔·沃利亚 Pavel Volya</p> <p> 克里斯托弗·法里班克 Christopher Fairbank</p> <p> 马丁·科勒巴 Martin Klebba</p> <p> 查尔斯·丹斯 Charles Dance</p> <p> 鲁特格尔·哈尔 Rutger Hauer</p> <p> 巴雷特·科茨 Barret Coates</p> <p> 伊戈尔·日日金 Igor Jijikin</p> <p> 娜露潘格慕·柴辛 Narupornkamol Chaisang</p> <p> 安德烈·梅尔兹利金 Andrey Merzlikin</p> <p> 维伦·巴比切夫 Vilen Babichev</p> <p> ��楠塔茬·塔纳潘披散 Sananthachat Thanapatpisal</p> <p> Peter Rafelson</p> <p> 尼基塔·塔拉索夫 Nikita Tarasov</p> <p> 阿列克谢·彼得鲁欣 Alexey A. Petrukhin</p> <p> 葵咪莎拉·普碟 Kemisara Paladesh</p> <p> 安东尼·加瓦德 Anthony Gavard</p> <p> 马蒂厄·雅克 Mathieu Jaquet</p> <p> 莱安德罗·梅厄·马丁内斯 Leandro Mayor Martinez</p> <p>◎简 介</p> <p> 电影《龙牌之谜》讲述了古老的东方传说——龙王在睡觉的时候睫毛长到地里能够长出茶叶。龙王把法力封印在龙牌里,并把这种力量赋予了替他照料睫毛的白魔法大师(成龙饰)和他的女儿成兰(姚星彤饰)。邪恶的黑魔法师将白魔法大师和成兰关进了异国监狱,龙王也陷入了沉睡,以茶叶为生的广大村民从此生活在水深火热之中……</p> <p>◎影片截图 magnet:?xt=urn:btih:a07a71aa3ab251c669ec02cd49bffc1edf90d72f&dn=[电影天堂www.dytt89.com]龙牌之谜BD国英双语中英双字.mp4&tr=http://t.t789.me:2710/announce&tr=http://t.t789.co:2710/announce&tr=http://t.t789.vip:2710/announce
解决方案:
修改爬电影名的正则表达式:
obj3 = re.compile(r'<meta name=keywords content="(?P<moviename>.*?)下载">.*?<td 'r'style="WORD-WRAP: break-word" bgcolor="#fdfddf"><a href="(?P<dizhi>.*?)"',re.S)
这样能一次性解决html中片名格式不对的情况和最后一部电影爬到其他无用数据的情况。
tips:各位写正则表达式时如果发现爬到的内容不对,可以尝试换一下关键词的位置,用别的地方爬。
修改后代码:
import requests
import re
import csv#s1,定位到2020必看片
domain="https://www.dy2018.com"
resp=requests.get(domain,verify=False)#去掉安全验证
resp.encoding='gb2312'#一般网站会告诉你他编码格式,也可以写gbk,如果没有这一句则可能出现乱码
page=resp.text#用page表达一下,方便理解#三次正则表达式都放到一起写了,也可以写到后面
obj1 = re.compile(r"2020必看热片.*?<ul>(?P<ul>.*?)<ul>",re.S)
obj2 = re.compile(r"<a href='(?P<href>.*?)'",re.S)
obj3 = re.compile(r'<meta name=keywords content="(?P<moviename>.*?)下载">.*?<td 'r'style="WORD-WRAP: break-word" bgcolor="#fdfddf"><a href="(?P<dizhi>.*?)"',re.S)
result1=obj1.finditer(page)
for it in result1:#其实只有一个地方能匹配,所以用search也行,不必循环ul=it.group("ul")#缩小区间,就算是定位到必看片系列了#print(ul)# s2,从2020必看片中提取到子页面地址
result2=obj2.finditer(ul)#使用缩小后的区间,正则表达式找到子页面链接
child_href_list=[]#准备一个字典存所有子页面
for itt in result2:#拼接子页面的url地址,域名+子页面地址,有的需要拼接有的不需要child_href=domain+itt.group("href")#如果有需要可以用.strip("/")把/去掉child_href_list.append(child_href)#把子页面链接放到列表里
#print(child_href_list)#,循环往字典添加子页面网站之后可以打印一下看看网址对不对#s3,进去子页面,拿到迅雷下载链接
f = open("download.csv", mode="w")
csvwritter=csv.writer(f)
for href in child_href_list:child_resp=requests.get(href,verify=False)#循环进入子页面并去掉安全验证child_resp.encoding = 'gbk' #修改编码格式page2=child_resp.text #用page2表示result3=obj3.search(page2) #也是只有一处能匹配,所以searchprint(result3.group("moviename"))print(result3.group("dizhi"))dic=result3.groupdict()dic['moviename'] = dic['moviename'].strip()dic['dizhi'] = dic['dizhi'].strip()csvwritter.writerow(dic.values())
f.close()
保存到csv中用excel打开之后的效果,(千万不要复制,十几个链接同时弹出来)
python爬虫——三步爬得电影天堂电影下载链接,30多行代码即可搞定:相关推荐
- Python爬虫:想听榜单歌曲?使用BeautifulSoup库只需要14行代码即可搞定
目录 BeautifulSoup库 安装BeautifulSoup库 BeautifulSoup库简介 选择解释器 基础用法 节点选择器 获取节点名称属性内容 获取所有子节点 获取所有子孙节点 父节点 ...
- python爬取豆瓣读书简单_Python用16行代码就搞定了爬取豆瓣读书页面
点击蓝字"python教程"关注我们哟! 我们一直说Python比较简单,代码体量没有别的程序那么大,对于初学者,尤其是零编程基础的初学者来说,感触没有那么明显,那么今天就让你见识 ...
- python爬取豆瓣读书简单_Python用16行代码就搞定了爬取豆瓣读书页面!
我们一直说Python比较简单,代码体量没有别的程序那么大,对于初学者,尤其是零编程基础的初学者来说,感触没有那么明显,那么今天就让你见识一下:爬取豆瓣读书页面,Python用16行代码就搞定了! p ...
- python爬取电影天堂的下载链接
python爬取电影天堂dytt8的下载链接 电影天堂下载链接都是magnet的,搞下来想下就下没有广告 建一个main.py 一个一个挨着去爬肯定慢啊,建一个多线程的去爬 mui.py 多线程有可能 ...
- python爬虫教程视频下载-利用Python网络爬虫获取电影天堂视频下载链接【详细教程】...
相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来. [二.项目准备] ...
- python下载电影天堂视频_一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接...
点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 [一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的 ...
- 利用Python网络爬虫获取电影天堂视频下载链接【详细教程】
相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来. [二.项目准备] ...
- 一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接
[一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天小编以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来 ...
- python下载电影天堂视频教程_一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接|python基础教程|python入门|python教程...
https://www.xin3721.com/eschool/pythonxin3721/ [一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知 ...
最新文章
- 综述:NLP中的深度学习优势
- Mysql优化系列(1)--Innodb重要参数优化
- lucene索引文件大小优化小结
- 插值算法C实现(二元全区间)
- Android Broadcast广播机制分析
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1107:校门外的树
- (原创)JS点击事件——Uncaught TypeError: Cannot set property 'onclick' of null
- Java Lambda语法替代
- ASP.NET 4中的SEO改进
- mysql罏在十三_MySQL高级知识(十三)——表锁
- 什么叫枚举法_四年级:美妙数学之“巧用枚举法”1(0202四)
- android studio中把c/c++文件编译成.so库(一)
- 户界面样式-表单轮廓和防止拖拽文本域(HTML、CSS)
- linux 2.6 内核的移植
- mysql常用数据操作之增、删、改
- 拓端tecdat|“新媒体”和“社群”调查报告
- Linux capability初探
- 这个世界的本源不是物质,而是物质背后的基本秩序-柏拉图
- 移远BC28_opencpu方案_pin脚分配
- Yocto系列讲解[理论篇]23 - BitBake全过程(1)
热门文章
- 12月17日 重磅来袭!元宇宙,是技术颠覆?还是产业革命?
- wps教鞭功能_(完整)《初识wps演示》教学设计及反思
- 基于stm32、Android和Html的温湿度监控系统的设计
- 具体数学之二项式系数1
- java+selenium+chromedrive实现全屏截图
- 开机时出错: VMware Player无法连接到虚拟机
- Java毕业设计_基于web的师生交流平台的设计与实现
- 摩拜进军澳大利亚;刘强东怒斥行业潜规则;博通计划1300亿美元收购高通丨价值早报
- mybatis-generator插件执行报错:Cannot resolve classpath entry
- SQLServer时间相关 - SQL日期,时间比较