错误:AttributeError: ResultSet object has no attribute ‘text‘.

错误代码:

import requests
from bs4 import BeautifulSoup
headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ' \
                        'AppleWebKit/537.36 (KHTML, like Gecko) '
                      'Chrome/99.0.4844.51 Safari/537.36'}

url="https://listado.mercadolibre.com.mx/hogar-muebles-jardin/seguridad-hogar/sistemas-monitoreo/camaras-seguridad/security-camera_NoIndex_True"
res_news = requests.get(url, headers=headers)
#实例化html
bs=BeautifulSoup(res_news.text,'html.parser')
# 获取数据
divs=bs.find_all('div',class_="ui-search-result__content-wrapper shops__result-content-wrapper")
#print(divs)
for div in divs:
    links=div.find('a').get('href')
    # print(links)


    res_news2=requests.get(url=links, headers=headers)
    # print(res_news2.text)
    #实例化html
    bs2 = BeautifulSoup(res_news2.text, 'html.parser')
    # print(bs2)
    # 获取数据
    titles = bs2.find_all('h1',class_='ui-pdp-title')
    print(titles.text)

输出: 

AttributeError: ResultSet object has no attribute 'text'. You're probably treating a list of elements like a single element. Did you call find_all() when you meant to call find()?

翻译: 

AttributeError:ResultSet 对象没有属性“文本”。 您可能将元素列表视为单个元素。 当您打算调用 find() 时,您是否调用了 find_all()?

 原因:print(titles.text)错误,titles本身是 ResultSet 类型,无.text属性

解决办法:将 print(titles.text)改为(注意缩进,否则会报错)

    for title in titles:
        print(title.text)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值