使用美丽的汤,我试图提取值(317.69),但结果却空了。我尝试提取的html代码块是:
<span class="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)">317.69</span>
我尝试了以下两种编码方式:
value = soup.find_all(attrs={'class': 'Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)'})
和
value = soup.find_all('span', class_='Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)')
但是如果我使用[]
会得到print(value.text)
注意://span[@class="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)"]
的XPath成功指向正确的元素。但是对于漂亮的汤,使用python的输出为空。
我首先尝试了从文献资料中找到美丽汤网站的方法:
但是没有运气:(
有人可以建议我从那里提取价值的正确方法吗?我的意思是,如果有多个类,如何提取值
我尝试的代码:
import requests
from bs4 import BeautifulSoup
url = 'https://finance.yahoo.com/quote/AAPL?p=AAPL'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
p = soup.find_all(attrs={'class': 'Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)'})
print(p)
答案 0 :(得分:0)
怎么样?
from simplified_scrapy.simplified_doc import SimplifiedDoc
html ='''
<span class="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)">317.69</span>
'''
doc = SimplifiedDoc(html)
eles = doc.getElementsByClass('Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)')
print ([ele.text for ele in eles])
# Get the first
ele = doc.getElementByClass('Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)')
print (ele.text)
结果:
['317.69']
317.69