吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 781|回复: 6
收起左侧

[求助] python 函数返回多个值问题??求教

[复制链接]
hahawangzi 发表于 2020-4-27 09:24
def manhua(html:str):
    rr =requests.get(html,headers=headers)
    rr.encoding="utf-8"
    duo=[]
    manhua=BeautifulSoup(rr.text,'html.parser')
    dizhi=manhua.find('ol',class_="links-of-books num_div")
    for a in dizhi.find_all('li',class_='sort_div'):
        duo["dizhi"]=('https://www.manhuadb.com'+str(a.find('a').get('href')))
    return duo["dizhi"]
   上述函数 dizhi.find_all 返回三个网址

然后我用以下函数套用这个函数所获得的网址,并摘取里面的图片。
发现duo这个函数返回的值只有一个能抓到图片 后面两个并没有自动抓取。
请问如何返回三个以上函数值?
def download(url2:str,page:int):
    r4 = requests.get(url2+'.html',headers=headers)
    r4.encoding="utf-8"
    dj = BeautifulSoup(r4.text,'lxml')
    name = dj.find('h1',class_='h2 text-center mt-3 ccdiv-m').getText()
    mkdir(name)
   
    for x in range(1,page):
        try:
            r3 = requests.get(url2+'p'+str(x)+'.html',headers=headers)
            r3.encoding="utf-8"
            dl = BeautifulSoup(r3.text,'lxml')
            page = dl.find('li',class_="breadcrumb-item active").getText()[46:49]
            reponse=dl.find('img',class_="img-fluid show-pic").get('src')
        
            image=requests.get(reponse,headers=headers)
            time.sleep(0.1)     
            filename='{}/{}/{}'.format('yiteng',name,name+str(x)+'.jpg')
            with open(filename,'wb') as fpp:
                fpp.write(image.content)
                print('成功第{}图片'.format(str(x)))
        except:
            pass
            
    print('全部保存成功!')

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

pzx521521 发表于 2020-4-27 09:32
[Asm] 纯文本查看 复制代码
def manhua(html:str):
    rr =requests.get(html,headers=headers)
    rr.encoding="utf-8"
    duo=[]
    manhua=BeautifulSoup(rr.text,'html.parser')
    dizhi=manhua.find('ol',class_="links-of-books num_div")
    for a in dizhi.find_all('li',class_='sort_div'):
        duo.append=('https://www.manhuadb.com'+str(a.find('a').get('href')))
    return duo

返回成数字
 楼主| hahawangzi 发表于 2020-4-27 09:48
pzx521521 发表于 2020-4-27 09:32
[mw_shl_code=asm,true]def manhua(html:str):
    rr =requests.get(html,headers=headers)
    rr.enco ...

返回数字 和字符串 有什么区别啊,为什么直接返回列表 我用
print(duo)是可以显示出三个网址的,就是抓取的时候就抓取第一个
Db2k 发表于 2020-4-27 09:56
虽然不懂python 但是返回值不用局限于返回 你可以传参进去然后在函数体内部修改参数 外部不也就修改了吗?
wodeweiyimpm 发表于 2020-4-27 09:58
小白来来看看
空想昼夜 发表于 2020-4-27 10:29
以逗号分隔可以返回一个list 如  return 1, 2, 3  外部调用后应该得到的是一个list[1, 2, 3]
或者也可以直接返回一个list类型的数组
你这个只返回一个是因为你for里面赋值都覆盖了...
wkfy 发表于 2020-4-27 10:29
最好给完整代码,看你这代码不知道你调用是否有问题。看起来只是传入一个网址
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-26 17:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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