首页 编程教程正文

BT电影天堂磁力链搜索,大神勿喷,有错请指教

piaodoo 编程教程 2020-02-22 22:10:18 1241 0 python教程

本文来源吾爱破解论坛

抓住双十一注册机会小尾巴的我终于有帐号了!哇哈哈哈哈哈
来直接切入正题,因为工作需求最近刚刚开始接触python,拿电影天堂(http://www.btbtdy.me)练练手。
进入网站直接开始搜索需要的电影,发现这个网址很简单嘛

可这样只是搜索出第一页的资源,切到第二页发现网址变了!

通过万能的百度发现quote模块能解决这个编码的问题,网址解决了拿这些资源就容易了!

因为不知道搜索的内容一共有几页,直接for循环肯定会出问题,还好发现可以通过下方页面跳转按钮知道全的页码

[Asm] 纯文本查看 复制代码

All_page_url = Html.xpath('/html/body/div[@class="pages"]//a')
End_page_url = Html.xpath('/html/body/div[@class="pages"]/a[' + str(len(All_page_url)) + ']/@href')
page_num = re.findall(r"\d+\.?\d*", End_page_url[0][6:9])[0]            # 最后一页页码

然后就是循环加基础的爬取标签内容啦
遇到第一个卡了很久的问题是,这个标签内的href不知道为什么用xpath一直拿不出来(输出的一直是一个函数,忘记截图了)
最后还是用比较笨的方法直接拼接(这个url还是比较简单的)
[Asm] 纯文本查看 复制代码
player = Html1.xpath('//*[@id="nucms_downlist"]//div')
        for iii in range(1, len(player)+1):
            Down = 0
            Type = Html1.xpath('//*[@id="nucms_downlist"]/div[' + str(iii) + ']/h2/text()')[0]
            Number = len(Html1.xpath('//*[@id="nucms_downlist"]/div[' + str(iii) + ']/ul/li'))
            if iii == 1:
                if Type == "云播放":
                    Down = 1
                    FIN_URL = 'http://www.btbtdy.me/play/' + str(re.findall(r"\d+\.?\d*", href[0])[0].replace('.', '')) + '-0-0.html'
                else:
                    for x in range(0, Number):
                        FIN_URL = 'http://www.btbtdy.me/down/' + str(re.findall(r"\d+\.?\d*", href[0])[0].replace('.', '')) + '-0-' + str(x) + '.html'
            elif iii == 2:
                for x in range(0, Number):
                    FIN_URL = 'http://www.btbtdy.me/down/' + str(re.findall(r"\d+\.?\d*", href[0])[0].replace('.', '')) + '-1-' + str(x) + '.html'

到下面一个页面直接拿取资源链接,本以为到这步就结束了,输出的却一直是“加载中”,原因是这个网页会延迟加载,直接f12到network里找吧,然后就找到了最终地址!

最后就是输出了

用的都是基础的代码,慢慢学习哈。
上代码:
[Asm] 纯文本查看 复制代码
# BT电影天堂
import re
import requests
from lxml import etree
from urllib.parse import quote


url = 'http://www.btbtdy.com/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'}

print("===========")
find_name = input("请输入片名:")
print("===========")
name = quote(find_name)     # 文字转码
find_url = 'http://www.btbtdy.me/search/' + name + '.html?page=1&searchword=' + name + '&searchtype='       # 第一页URL

response = requests.get(find_url, headers=headers)
data = response.content.decode('UTF-8')
Html = etree.HTML(data)

All_page_url = Html.xpath('/html/body/div[@class="pages"]//a')
End_page_url = Html.xpath('/html/body/div[@class="pages"]/a[' + str(len(All_page_url)) + ']/@href')
page_num = re.findall(r"\d+\.?\d*", End_page_url[0][6:9])[0]            # 最后一页页码

for i in range(1, int(page_num)+1):
    final_all_url = 'http://www.btbtdy.me/search/' + name + '.html?page=' + str(i) + '&searchword=' + name + '&searchtype='
    response = requests.get(final_all_url, headers=headers)
    data = response.content.decode('UTF-8')
    Html = etree.HTML(data)
    Lists = Html.xpath('/html/body/div[@class="list_so"]//dl')
    for ii in range(1, len(Lists)+1):
        title = Html.xpath('/html/body/div[@class="list_so"]/dl[' + str(ii) + ']/dt/a/@title')
        href = Html.xpath('/html/body/div[@class="list_so"]/dl[' + str(ii) + ']/dt/a/@href')
        final_url = 'http://www.btbtdy.me' + href[0]
        response = requests.get(final_url, headers=headers)
        data = response.content.decode('UTF-8')
        Html1 = etree.HTML(data)
        print(title)

        player = Html1.xpath('//*[@id="nucms_downlist"]//div')
        for iii in range(1, len(player)+1):
            Down = 0
            Type = Html1.xpath('//*[@id="nucms_downlist"]/div[' + str(iii) + ']/h2/text()')[0]
            Number = len(Html1.xpath('//*[@id="nucms_downlist"]/div[' + str(iii) + ']/ul/li'))
            if iii == 1:
                if Type == "云播放":
                    Down = 1
                    FIN_URL = 'http://www.btbtdy.me/play/' + str(re.findall(r"\d+\.?\d*", href[0])[0].replace('.', '')) + '-0-0.html'
                else:
                    for x in range(0, Number):
                        FIN_URL = 'http://www.btbtdy.me/downlist/' + str(re.findall(r"\d+\.?\d*", href[0])[0].replace('.', '')) + '-0-' + str(x) + '.html'
            elif iii == 2:
                for x in range(0, Number):
                    FIN_URL = 'http://www.btbtdy.me/downlist/' + str(re.findall(r"\d+\.?\d*", href[0])[0].replace('.', '')) + '-1-' + str(x) + '.html'
            elif iii == 3:
                for x in range(0, Number):
                    FIN_URL = 'http://www.btbtdy.me/downlist/' + str(re.findall(r"\d+\.?\d*", href[0])[0].replace('.', '')) + '-2-' + str(x) + '.html'
            elif iii == 4:
                for x in range(0, Number):
                    FIN_URL = 'http://www.btbtdy.me/downlist/' + str(re.findall(r"\d+\.?\d*", href[0][0].replace('.', ''))) + '-3-' + str(x) + '.html'
            if Down == 0:
                response = requests.get(FIN_URL, headers=headers)
                data = response.content.decode('UTF-8')
                Html2 = etree.HTML(data)
                Magnet = Html2.xpath('/html/body/p[2]/text()')
                if not Magnet:
                    Magnet = '暂无该资源'
                else:
                    Magnet = Magnet[0]
                print('              ' + Type + '      :' + Magnet)

1.png (42.48 KB, 下载次数: 0)

下载附件  保存到相册

2019-11-13 11:19 上传

1.png

2.png (61.46 KB, 下载次数: 0)

下载附件  保存到相册

2019-11-13 11:20 上传

2.png

3.png (14.55 KB, 下载次数: 1)

下载附件  保存到相册

2019-11-13 11:22 上传

3.png

4.png (73.69 KB, 下载次数: 2)

下载附件  保存到相册

2019-11-13 11:25 上传

4.png

5.png (44.04 KB, 下载次数: 1)

下载附件  保存到相册

2019-11-13 11:33 上传

5.png

6.png (93.03 KB, 下载次数: 0)

下载附件  保存到相册

2019-11-13 11:43 上传

6.png

7.png (46.72 KB, 下载次数: 0)

下载附件  保存到相册

2019-11-13 12:32 上传

7.png

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7751.html

搜索