为什么 BeatifulSoup 不能很好地与网站 Coinmarketcap 配合使用?
Why does not BeatifulSoup work well with the website Coinmarketcap?
我对以下代码有疑问。当我在 Google Colaboratory 中 运行 它时,我希望结果(来自 Coinmarketcap 网站的数字数据)会随着时间的推移而变化,因为它在网站上不断变化,但我总是得到一个固定的结果.我该如何解决这个问题?
非常感谢您的帮助:)
from bs4 import BeautifulSoup
import requests
while True:
url="https://coinmarketcap.com/currencies/bitcoin/"
html_content = requests.get(url).text
soup = BeautifulSoup(html_content, "lxml")
h = soup.find(class_='statsValue___2iaoZ').text.replace('$', '').replace('%','')
print(f'\r{h}', end=" ")
880,648,583,648 (not changing):(
看起来,当页面首次加载时,它会加载一个设定值,然后进行更新。
我建议使用这个或另一个网站
https://coinmarketcap.com/api/documentation/v1/
值通过 javascript 动态更新。 BeautifulSoup 无法处理。您可以改用 Selenium:
!apt update
!apt install chromium-chromedriver
!pip install selenium
然后:
from selenium import webdriver
from bs4 import BeautifulSoup
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
url="https://coinmarketcap.com/currencies/bitcoin/"
wd = webdriver.Chrome('chromedriver',options=options)
wd.get(url)
while True:
soup = BeautifulSoup(wd.page_source, "lxml")
h = soup.find(class_='statsValue___2iaoZ').text.replace('$', '').replace('%','')
print(f'\r{h}', end=" ")
这些值现在将根据需要更新。
我对以下代码有疑问。当我在 Google Colaboratory 中 运行 它时,我希望结果(来自 Coinmarketcap 网站的数字数据)会随着时间的推移而变化,因为它在网站上不断变化,但我总是得到一个固定的结果.我该如何解决这个问题?
非常感谢您的帮助:)
from bs4 import BeautifulSoup
import requests
while True:
url="https://coinmarketcap.com/currencies/bitcoin/"
html_content = requests.get(url).text
soup = BeautifulSoup(html_content, "lxml")
h = soup.find(class_='statsValue___2iaoZ').text.replace('$', '').replace('%','')
print(f'\r{h}', end=" ")
880,648,583,648 (not changing):(
看起来,当页面首次加载时,它会加载一个设定值,然后进行更新。 我建议使用这个或另一个网站 https://coinmarketcap.com/api/documentation/v1/
值通过 javascript 动态更新。 BeautifulSoup 无法处理。您可以改用 Selenium:
!apt update
!apt install chromium-chromedriver
!pip install selenium
然后:
from selenium import webdriver
from bs4 import BeautifulSoup
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
url="https://coinmarketcap.com/currencies/bitcoin/"
wd = webdriver.Chrome('chromedriver',options=options)
wd.get(url)
while True:
soup = BeautifulSoup(wd.page_source, "lxml")
h = soup.find(class_='statsValue___2iaoZ').text.replace('$', '').replace('%','')
print(f'\r{h}', end=" ")
这些值现在将根据需要更新。