我正在嘗試從電力資料網站收集資料點:
electricalMap | 電力消耗的二氧化碳排放量
到目前為止,我已經撰寫了這段代碼:
from requests_html import HTMLSession #import libraries
s = HTMLSession()
url = 'https://app.electricitymap.org/zone/DK-DK2'
r = s.get(url, headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36'})
webpageTitle = (r.html.find('title', first=True).text)
print(webpageTitle)
我可以讓 VS Code 列印出網站的標題,但我只對給定時刻的可再生能源數量感興趣。這顯示為網站左上角的“可再生”表盤。
我檢查了該網站并找到了我想要收集的值:Chrome DevTools 的螢屏截圖。
我需要寫什么才能在 Python 中列印這個值?
uj5u.com熱心網友回復:
正如@Tim Roberts 所說,該網站完全是通過 Javascrip 構建的。我測驗了requests_html和selenium。requests_html 給出空輸出意味著無法渲染 JavaScript,但 selenium 會產生完美的輸出。
from requests_html import HTMLSession #import libraries
from bs4 import BeautifulSoup as bs
s = HTMLSession()
url = 'https://app.electricitymap.org/zone/DK-DK2'
r = s.get(url, headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36'})
soup=bs(r.text,'html.parser')
renewable=[x.get_text() for x in soup.select('g[] text')]
print(renewable)
輸出:
[]
#Selenium: You have nothing to install just you can run the code
from bs4 import BeautifulSoup as bs
import time
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
url = 'https://app.electricitymap.org/zone/DK-DK2'
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.maximize_window()
driver.get(url)
time.sleep(2)
soup=bs(driver.page_source,'html.parser')
renewable=[x.get_text() for x in soup.select('g[] text')][1]
print(renewable)
輸出:
69%
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/448273.html
