错误代码:
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)