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) #也是只有一处能匹配,所以search
print(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>◎主 演 成龙 *</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