吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2735|回复: 19
收起左侧

[Python 转载] 使用Python手刃電影天堂裡面的電影下載資源

[复制链接]
QingYi. 发表于 2021-5-30 11:45
鑒於昨天寫了一個沒X用的豆瓣top250爬取資源之後,有朋友說沒有下載資源;於是乎我大清早又開始學習Python了。
這次來練手的是電影天堂(好啦,實際上是盜版)中的電影資源,是最近更新的幾部電影,獲取名字 + 迅雷下載地址
電影鏈接在代碼裡面有
期間在編寫Regular Expression的途中由於自己的一個小失誤,導致拿不到數據,折騰了半天,好難過,本來10點就可以發帖的

把print注釋放開,就能查看每一步的結果


所獲取到的資源都是可下載的

[Python] 纯文本查看 复制代码
# first find the position
# second find the resource address
# third get the download address
import re
import requests

# 定義好需要練手的網站
url = "https://www.dydytt.net/index.htm"
# 取消驗證 verify = False
resp = requests.get(url, verify=False)
# 由於網站編碼和本地不一樣,要設置encoding
resp.encoding = "gb2312"
# print(resp.text)
# get the li in ul

# obj1、2和3都是正則
obj1 = re.compile(r'<div class="co_content2">.*?<ul>(?P<ul>.*?)</ul>', re.S)
# get subpage address
obj2 = re.compile(r"<a href='/html/gndy/dyzz/2021(?P<href>.*?)'", re.S)
obj3 = re.compile(r'◎片  名(?P<name>.*?)<br />.*?<a target="_blank" href="(?P<download>.*?)">', re.S)
# 拿到打開URL之後進過re正則表達式過濾後的頁面
res1 = obj1.finditer(resp.text)
# 定義好一個列表,方便後續直接遍歷子頁面 以獲得想要的下載地址
sub_list = []
for r in res1:
    ul = r.group('ul')
    # print(ul)
    # 拿到想要的標籤之後,放進obj2正則裡面過濾,得到其想要的下一步數據,就是href跳轉的標籤,我們後續要拼接起來
    res2 = obj2.finditer(ul)
    for r2 in res2:
        # print(r2.group("href"))
        # 拼接之後 放入列表裡面

        '''
        這裡有一個問題需要注意
        /html/gndy/jddy/20160320/50523.html
        這個頁面左邊“最新電影更新:”第一個鏈接是這個,2016開頭的,所以我們需要過濾它,我選擇最簡單的辦法,直接拿2021最新電影
        '''
        child_href = "https://www.dydytt.net/html/gndy/dyzz/2021" + r2.group("href").strip("/")
        # print(child_href)
        sub_list.append(child_href)

# 遍歷子頁面,拿到子頁面的電影名字和下載地址
for href in sub_list:
    # 遍歷拼接的子頁面,也就是單獨一個電影的頁面
    child_resp = requests.get(href, verify=False)
    child_resp.encoding = "gb2312"
    # print(href)
    # print("------------------------------")
    # print(child_resp.text)
    # 再次過濾一遍,拿到電影名字和下載地址
    res3 = obj3.search(child_resp.text)
    print(res3.group("name") + " 下載鏈接是: " + res3.group("download") + "\n")
    # print(res3.group("download"))

在新标签打开所有链接复制所有链接URL复制所有链接URL(反向)复制所有链接标题 + URL复制所有链接标题 + URL (MD)复制所有链接标题 + URL (BBS)复制所有链接标题 + URL (筛选)复制所有链接标题 + URL (设置复制格式)在新标签页打开所有图片链接在一个标签页显示所有图片链接
复选框 - 选中
复选框 - 取消
复选框 - 反选
单选框 - 选中
单选框 - 取消
特殊单选框 - 选中

所有爬取出來的結果都是可下載的

所有爬取出來的結果都是可下載的

免费评分

参与人数 2吾爱币 +5 热心值 +2 收起 理由
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
bestlover + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

kk159 发表于 2021-5-30 12:51
代码核心就是regex,
可以尝试解析响应数据,利用bs4,xpath提取标签生成通用规则,

免费评分

参与人数 1热心值 +1 收起 理由
QingYi. + 1 我很赞同!

查看全部评分

 楼主| QingYi. 发表于 2021-5-30 16:47
kk159 发表于 2021-5-30 12:51
代码核心就是regex,
可以尝试解析响应数据,利用bs4,xpath提取标签生成通用规则,

確實是這樣,剛剛好學到這裡,我是一步一步學上去的
lovehfs 发表于 2021-5-30 11:53
pojie666 发表于 2021-5-30 12:28
人生苦短
Grimlad 发表于 2021-5-30 12:41
优秀————
SupKevin 发表于 2021-5-30 12:46
感谢楼主分享
yahao360 发表于 2021-5-30 13:24
报错11111
Snipaste_2021-05-30_13-23-39.png
 楼主| QingYi. 发表于 2021-5-30 13:29

這是正常的 這個要添加證書我略過了。我這邊也提示這樣
念所不及 发表于 2021-5-30 13:32
学习了,人生苦短我用python
雨之幽 发表于 2021-5-30 14:46
可以可以。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-26 20:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表