如何从https://finance.yahoo.com/quote/FB?p=FB返回数据。我正在尝试提取打开和关闭的数据。问题是这两个数字在代码中共享同一个类。在
他们都共享这个类'Trsdu(0.3s)'
如果类是相同的,如何区分这些类?在
import requests
from bs4 import BeautifulSoup
goog = requests.get('https://finance.yahoo.com/quote/FB?p=FB')
googsoup = BeautifulSoup(goog.text, 'html.parser')
googclose = googsoup.find(class_='Trsdu(0.3s) ').get_text()
如果您使用Chrome浏览器,您可以右键单击您想了解更多信息的项目,然后从结果菜单中选择检查。浏览器将显示与OPEN关联的号码的类似内容。在
请注意,不仅有一个class属性,还有
data-reactid
属性可以做到这一点。事实上,如果你也检查这个接近的数字,你会发现它的属性是不同的。在下面的代码建议如下。在
如果只需要
Open
和Previous Close
的值,则可以使用findAll
并获取结果中的前2项或者您可以更高一级,使用
^{pr2}$data-test
属性查找基于父td
的值此功能:
googclose = googsoup.find(class_='Trsdu(0.3s) ').get_text()
将只返回第一个具有
Trsdu(0.3s)
类的元素的文本。在使用:
googclose = googsoupsoup.find_all(class_='Trsdu(0.3s)')
将返回一个数组,该数组包含具有
Trsdu(0.3s)
类的页面元素。在然后可以迭代它们:
for element in googsoupsoup.find_all(class_='Trsdu(0.3s)'): print element.get_text()
相关问题 更多 >
编程相关推荐