从:https://usclimatedata.com/climate/binghamton/new-york/united-states/usny0124中提取平均温度与实际温度的比较
我可以成功地收集网页的源代码,但我很难通过它解析,只给出“历史”选项卡下的高温、低温、降雨和平均值的值,但如果没有得到“无”的唯一结果,我似乎无法找到正确的类/id。在
到目前为止,我得到的结果是,最后一行是只尝试获得高温:
from lxml import html
from bs4 import BeautifulSoup
from selenium import webdriver
url = "https://usclimatedata.com/climate/binghamton/new-york/unitedstates/usny0124"
browser = webdriver.Chrome()
browser.get(url)
soup = BeautifulSoup(browser.page_source, "lxml")
data = soup.find("table", {'class': "align_right_climate_table_data_td_temperature_red"})
首先,这是两个不同的类-}-您将它们连接起来并出于某种原因添加了{}。并且,具有这两个类的元素是}。在
align_right
和{td
元素,而不是{在任何情况下,要获得气候表,您应该寻找
div
元素,该元素具有id="climate_table"
:另一个需要注意的重要事项是,这里存在“时间”问题的潜在可能性——当你得到
^{pr2}$driver.page_source
值时,气候信息可能不在那里。通常在导航到页面后添加一个Explicit Wait:请注意,添加了
try/finally
,它可以在出现错误时安全关闭浏览器-这也有助于避免“挂起”浏览器窗口。在而且,看看^{} 它可以神奇地将你的气候信息表读入^{} 自动档。在
相关问题 更多 >
编程相关推荐