在span标签内找不到元素

贾里

我正在尝试从该网站上收集数据:https ://www.dailyfx.com/sentiment例如,我想知道有多少%的客户持有欧元/美元多头,但我无法获得span标签中的文字。

我正在努力获得61%

<span class="bullish-color jsdfx-sentiment-long" style="font-size: 15px;">61%</span>

'''

import bs4, requests

dailyfxSite = 'https://www.dailyfx.com/sentiment'

res = requests.get(dailyfxSite)
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'html.parser')

span = soup.find("span", class_="bullish-color jsdfx-sentiment-long")
print(span)

'''

我得到这个作为回报:

<span class="bullish-color jsdfx-sentiment-long" style="font-size:15px;"> </span>

'''

除了我需要的61%以外的所有东西

拉斐尔

问题似乎在于如何在网站上创建数据。网站好像正在使用JavaScript加载数据(即span元素是使用JavaScript动态创建的)。requests不适用于JavaScript动态创建的元素。

我建议使用硒打开网站:

from bs4 import BeautifulSoup
import requests
from selenium import webdriver

url = "https://www.dailyfx.com/sentiment"
browser = webdriver.Chrome(executable_path="/usr/local/bin/chromedriver")
browser.get(url)
soup = BeautifulSoup(browser.page_source, features="html.parser")
a = soup.find("span", {"class": "bullish-color"})
print(a.text)

输出:

61%

您可能需要一种不同的方法来创建browser(上面给出的方法在给定一些自定义配置的情况下在macOS上起作用)。看看如何在平台上使用Selenium创建浏览器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章