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>◎导  演 伊哥&middot;斯坦普陈科 Oleg Stepchenko</p>
<p>◎主  演 成龙 Jackie Chan</p>
<p>      阿诺&middot;施瓦辛格 Arnold Schwarzenegger</p>
<p>      杰森&middot;弗莱明 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>      安娜&middot;邱丽娜 Anna Churina</p>
<p>      尤里&middot;科洛科利尼科夫 Yuri Kolokolnikov</p>
<p>      巴维尔&middot;沃利亚 Pavel Volya</p>
<p>      克里斯托弗&middot;法里班克 Christopher Fairbank</p>
<p>      马丁&middot;科勒巴 Martin Klebba</p>
<p>      查尔斯&middot;丹斯 Charles Dance</p>
<p>      鲁特格尔&middot;哈尔 Rutger Hauer</p>
<p>      巴雷特&middot;科茨 Barret Coates</p>
<p>      伊戈尔&middot;日日金 Igor Jijikin</p>
<p>      娜露潘格慕&middot;柴辛 Narupornkamol Chaisang</p>
<p>      安德烈&middot;梅尔兹利金 Andrey Merzlikin</p>
<p>      维伦&middot;巴比切夫 Vilen Babichev</p>
<p>      ��楠塔茬&middot;塔纳潘披散 Sananthachat Thanapatpisal</p>
<p>      Peter Rafelson</p>
<p>      尼基塔&middot;塔拉索夫 Nikita Tarasov</p>
<p>      阿列克谢&middot;彼得鲁欣 Alexey A. Petrukhin</p>
<p>      葵咪莎拉&middot;普碟 Kemisara Paladesh</p>
<p>      安东尼&middot;加瓦德 Anthony Gavard</p>
<p>      马蒂厄&middot;雅克 Mathieu Jaquet</p>
<p>      莱安德罗&middot;梅厄&middot;马丁内斯 Leandro Mayor Martinez</p>
<p>◎简  介</p>
<p>  电影《龙牌之谜》讲述了古老的东方传说&mdash;&mdash;龙王在睡觉的时候睫毛长到地里能够长出茶叶。龙王把法力封印在龙牌里,并把这种力量赋予了替他照料睫毛的白魔法大师(成龙饰)和他的女儿成兰(姚星彤饰)。邪恶的黑魔法师将白魔法大师和成兰关进了异国监狱,龙王也陷入了沉睡,以茶叶为生的广大村民从此生活在水深火热之中&hellip;&hellip;</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多行代码即可搞定:相关推荐

  1. Python爬虫:想听榜单歌曲?使用BeautifulSoup库只需要14行代码即可搞定

    目录 BeautifulSoup库 安装BeautifulSoup库 BeautifulSoup库简介 选择解释器 基础用法 节点选择器 获取节点名称属性内容 获取所有子节点 获取所有子孙节点 父节点 ...

  2. python爬取豆瓣读书简单_Python用16行代码就搞定了爬取豆瓣读书页面

    点击蓝字"python教程"关注我们哟! 我们一直说Python比较简单,代码体量没有别的程序那么大,对于初学者,尤其是零编程基础的初学者来说,感触没有那么明显,那么今天就让你见识 ...

  3. python爬取豆瓣读书简单_Python用16行代码就搞定了爬取豆瓣读书页面!

    我们一直说Python比较简单,代码体量没有别的程序那么大,对于初学者,尤其是零编程基础的初学者来说,感触没有那么明显,那么今天就让你见识一下:爬取豆瓣读书页面,Python用16行代码就搞定了! p ...

  4. python爬取电影天堂的下载链接

    python爬取电影天堂dytt8的下载链接 电影天堂下载链接都是magnet的,搞下来想下就下没有广告 建一个main.py 一个一个挨着去爬肯定慢啊,建一个多线程的去爬 mui.py 多线程有可能 ...

  5. python爬虫教程视频下载-利用Python网络爬虫获取电影天堂视频下载链接【详细教程】...

    相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来. [二.项目准备] ...

  6. python下载电影天堂视频_一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接...

    点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 [一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的 ...

  7. 利用Python网络爬虫获取电影天堂视频下载链接【详细教程】

    相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来. [二.项目准备] ...

  8. 一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接

    [一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天小编以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来 ...

  9. python下载电影天堂视频教程_一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ [一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知 ...

最新文章

  1. 综述:NLP中的深度学习优势
  2. Mysql优化系列(1)--Innodb重要参数优化
  3. lucene索引文件大小优化小结
  4. 插值算法C实现(二元全区间)
  5. Android Broadcast广播机制分析
  6. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1107:校门外的树
  7. (原创)JS点击事件——Uncaught TypeError: Cannot set property 'onclick' of null
  8. Java Lambda语法替代
  9. ASP.NET 4中的SEO改进
  10. mysql罏在十三_MySQL高级知识(十三)——表锁
  11. 什么叫枚举法_四年级:美妙数学之“巧用枚举法”1(0202四)
  12. android studio中把c/c++文件编译成.so库(一)
  13. 户界面样式-表单轮廓和防止拖拽文本域(HTML、CSS)
  14. linux 2.6 内核的移植
  15. mysql常用数据操作之增、删、改
  16. 拓端tecdat|“新媒体”和“社群”调查报告
  17. Linux capability初探
  18. 这个世界的本源不是物质,而是物质背后的基本秩序-柏拉图
  19. 移远BC28_opencpu方案_pin脚分配
  20. Yocto系列讲解[理论篇]23 - BitBake全过程(1)

热门文章

  1. 12月17日 重磅来袭!元宇宙,是技术颠覆?还是产业革命?
  2. wps教鞭功能_(完整)《初识wps演示》教学设计及反思
  3. 基于stm32、Android和Html的温湿度监控系统的设计
  4. 具体数学之二项式系数1
  5. java+selenium+chromedrive实现全屏截图
  6. 开机时出错: VMware Player无法连接到虚拟机
  7. Java毕业设计_基于web的师生交流平台的设计与实现
  8. 摩拜进军澳大利亚;刘强东怒斥行业潜规则;博通计划1300亿美元收购高通丨价值早报
  9. mybatis-generator插件执行报错:Cannot resolve classpath entry
  10. SQLServer时间相关 - SQL日期,时间比较