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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3118|回复: 57
收起左侧

[Python 原创] python批量爬取某影天堂的下载地址以及500多部链接分享

[复制链接]
billsmiless 发表于 2024-1-8 16:14
本帖最后由 billsmiless 于 2024-1-8 16:17 编辑

python批量爬取某影天堂的下载地址以及500多部链接分享

1、前言

最近想搞了本地影音服务器,但没有片源,所有就想批量爬一个,分享一下,也加深下记忆。同时把已经爬好的500多部的链接一并分享给大家。视频我都下完了。 过程比较简单,但删了可惜了,就分享出来。完整代码与链接都放在文末,为了发扬分享的精神(反对伸手党),我给大家加了点难度,不过分吧😄

2、分析

这里下载的是经典分类的电影,所以打开该页面,是一个列表页,从中可以取得详情地址以及基本信息,如下图

1列表分析

1列表分析

拿到详情地址后,跳转到详情页,从详情页取下载链接,如下图

2详情分享

2详情分享

下面说说批量的思路,观察每页的列表页的链接,可以确定不同的列表页中的html链接是有一个索引递增的。所以循环就可以了

3、实现

比较简单,说说思路吧
1、首先根据要开始的页号与准备解析的页数,循环生成列表的url
2、根据列表url,代码通过浏览器打开url,取得html内容,从中取得影片基本信息以及详情url,以json格式保存
3、代码通过浏览器打开详情url,从详情url中读取下载链接,将下载链接添加到json里
4、导出json文件到本地

python通过selenium调用浏览器,安装命令

pip3 install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple

导出的json文件中,包含所有清晰度的链接。

通过代码打开浏览器访问html

def getHtmlContent(url) :
        driver = webdriver.Chrome()  # 使用谷歌浏览器
        driver.get(url)  

        # 此时网页已经完全加载,包括由JavaScript动态插入的内容  
        html_source = driver.page_source  
        driver.close()

        return html_source

生成urls.txt的文件名,若存在,则索引加1,如urls1.txt、urls2.txt

def getUrlFilePath(index=0) :
        urlFileName = 'urls.txt'
        if index > 0 :
                urlFileName = 'urls'+str(index)+'.txt'

        filePath = './url/'
        # 若不存在,创建临时目录
        if os.path.isdir(filePath) == False :
                os.makedirs(filePath, exist_ok=True)

        filePath = filePath + urlFileName
        #若不存在,则直接返回
        if os.path.exists(filePath) == False :
                return filePath
        else :
                return getUrlFilePath(index + 1)

BeautifulSoup中的正则表达式的运用,搜索所有包含豆瓣评分的标签

soup = BeautifulSoup(html_content, 'html.parser')
jsonArr = []
scoreArr = soup.find_all(string=re.compile('豆瓣评分'))

4、注意事项

a、一次不要爬太多页,建议不要超过5页,多了时间太久,万一哪个卡死了,就完蛋了。
b、如果浏览器打开页面卡在白屏太久,可以先在浏览器打开该页面,再运行代码。
c、请使用谷歌浏览器

5、Demo以及说明

两个python文件,一个是解析取得json的,一个是从json中得到地址的。
先运行dytt.py导出json数据,再运行另一个。如下图

3代码说明

3代码说明

下载地址

dytt.zip (84.46 KB, 下载次数: 180)

免费评分

参与人数 7吾爱币 +7 热心值 +5 收起 理由
hwh425 + 1 热心回复!
soughing + 1 + 1 我很赞同!
ws001980 + 1 + 1 谢谢@Thanks!
wutljs + 1 热心回复!
willbe001 + 1 + 1 我很赞同!
Varg + 1 + 1 谢谢@Thanks!
调味包 + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

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

odmin 发表于 2024-1-9 13:40
[Python] 纯文本查看 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By


def get_href_with_selenium():
    url = 'https://www.dy2018.com/html/gndy/dyzz/index.html'

    options = webdriver.ChromeOptions()
    options.add_argument('--headless')  # 无头模式,不打开浏览器窗口
    driver = webdriver.Chrome(options=options)

    driver.get(url)

    # 使用 Selenium 定位元素
    a_elements = driver.find_elements(By.XPATH, '//div[@class="co_content8"]/ul//a')

    # 遍历获取到的href属性
    for i in range(len(a_elements)):
        # 重新获取 a 元素列表
        a_elements = driver.find_elements(By.XPATH, '//div[@class="co_content8"]/ul//a')

        # 获取href属性
        href = a_elements[i].get_attribute('href')
        # print("Href:", href)

        # 使用 WebDriver 对象打开链接
        driver.get(href)

        # 在新的页面中定位元素
        try:
            # 定位新页面中的元素
            download_links = driver.find_elements(By.XPATH, '//*[@id="downlist"]/table/tbody/tr/td/a')

            # 输出或处理获取到的下载链接信息
            for download_link in download_links:
                download_href = download_link.get_attribute('href')
                print("Download link:", download_href)
        except Exception as e:
            print("Unable to locate download links", e)

        # 回到初始页面或者其他操作
        driver.back()  # 返回初始页面或者前一页

    driver.quit()


get_href_with_selenium()
image.png
hlowld 发表于 2024-1-8 16:19
dingqh 发表于 2024-1-8 16:22
YYDS3721 发表于 2024-1-8 16:25
冲!!!!!!!感谢大佬
sdieedu 发表于 2024-1-8 16:26
可以看  电影了
cykablyat 发表于 2024-1-8 16:36
感谢分享
pj666a 发表于 2024-1-8 16:38
感谢分享,不错
176xuexi 发表于 2024-1-8 16:41
不错不错,值得学习
alanyelan 发表于 2024-1-8 16:45
谢谢分享。话说这网站居然还在呢。老网站了。
FruitBaby 发表于 2024-1-8 16:49
不涉及到js逆向,这种属于比较简单的
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-4-30 21:07

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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