第一个函数是返回三个值,第二个函数需要使用第一个函数的返回值,但是只要使用其中的一个,原来我不用傻乎

2020/12/19 12:31
阅读数 90

第一个函数是返回三个值,第二个函数需要使用第一个函数的返回值,但是只要使用其中的一个,原来我不用傻乎乎的把第二个函数也定义为三个形参的函数,而是可以像这样只定义一个变量,而使用第一个函数外加序号角标的方式得到某一个返回值给予传递给第二个函数拉!

譬如我函数GetUrlList返回了三个值,

def GetUrlList(url_shouye):
    return urlList_short,titleList,fengmiantuList #获取到第xx页这一页的播放页url集合、描述集合、封面照片集合!

而我第二个函数GetXunLeiDownloadUrl只要其中的urlList_short

GetXunLeiDownloadUrl(url_short)
return XunLeiDownloadUrl #获取xl下载链接地址,虽然只有一个,但是类型是List

我大可不必这样定义我的GetXunLeiDownloadUrl函数,urlList_short(urlList_short,titleList,fengmiantuList)

而只需要这样定义urlList_short(urlList_short)

之后a = GetUrlList(url_shouye)

urlList_short(a[0])   #a[0]就是GetUrlList(url_shouye)函数返回值的第一个类别的返回值!!!



我之前的博文《https://blog.51cto.com/8189171/2565449》就是傻乎乎的

import requests
from lxml import etree
import os
import time
import pymysql

#------------全局变量------------------------------------------------------------
YuMing = "https://https://三大波流点香蕉sp逗抠门"
ShouYe = "https://https://三大波流点香蕉sp逗抠门/home/vodlist/36/1260-1.html"
DiErYe = "https://https://三大波流点香蕉sp逗抠门/home/vodlist/36/1260-2.html"
BoFangYe = "https://https://三大波流点香蕉sp逗抠门/home/play/109275_36.html"


gHeads = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
}

#------------获取播放页url和title和封面照片,获取的url一般是短链接形式------------------------------------------------------------
def GetUrlList(url_shouye):
    html = requests.get(url_shouye, headers=gHeads)  # 1.获取页面源码数据
    htmlContent_shouye = etree.HTML(html.content)  # 2.实例化一个etree的对象,并且将页码源数据加载到该对象中

    urlList_short = htmlContent_shouye.xpath("//div[@class='row col5 clearfix']/dl/dt/a/@href")  # 3.调用该对象的xpath方法进行制定标签的定位
    titleList = htmlContent_shouye.xpath("//div[@class='row col5 clearfix']/dl/dt/a/@title")
    fengmiantuList = htmlContent_shouye.xpath("//div[@class='row col5 clearfix']/dl/dt/a/img/@data-original")
    print("urlList_short:",urlList_short)
    print("titleList:",titleList)
    print("fengmiantuList:",fengmiantuList)

    return urlList_short,titleList,fengmiantuList #获取到第xx页这一页的播放页url集合、描述集合、封面照片集合!(也就是只返回传递来的该页,不是all)

#------------进入播放页获取迅雷下载链接地址------------------------------------------------------------
def GetXunLeiDownloadUrl(url_short):
    url_short = YuMing + url_short #拼接为完整长链接
    print("urlList_short:",url_short)

    html = requests.get(url_short, headers=gHeads)  # 1.获取页面源码数据
    htmlContent_shouye = etree.HTML(html.content)  # 2.实例化一个etree的对象,并且将页码源数据加载到该对象中

    XunLeiDownloadUrl = htmlContent_shouye.xpath("//div[@class='tot']/div/a/@data-clipboard-text")  # 3.调用该对象的xpath方法进行制定标签的定位
    print("XunLeiDownloadUrl:",XunLeiDownloadUrl)

    return XunLeiDownloadUrl #获取迅雷下载链接地址,虽然只有一个,但是类型是List





if __name__ == '__main__':
    # nNum = 1
    nNum = int(input(u"请输入要下载几页: "))
    for i in range(nNum):
        url_shouye = "https://https://三大波流点香蕉sp逗抠门/home/vodlist/36/1260-%d.html" % (i + 1)

        url_short_List = GetUrlList(url_shouye)
        # print("url_short_List:", url_short_List)
        for j in range(len(url_short_List[0])):  #len(url_short_List)为3,3个返回值为List数量,而我们应该用len(url_short_List[0])才对
            # print("len(url_short_List[0])",len(url_short_List[0]))
            # print("j=",j)
            url_short = url_short_List[0][j]
            # print("url_short",url_short)
            GetXunLeiDownloadUrl(url_short) #其实,第一个函数是返回三个值,第二个函数需要使用第一个函数的返回值,但是只要使用其中的一个,原来我不用傻乎乎的把第二个函数也定义为三个形参的函数,而是可以像这样只定义一个变量,而使用第一个函数外加序号角标的方式得到某一个返回值给予传递给第二个函数拉!


展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部