吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

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

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

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


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

[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# 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, 2025-5-28 10:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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