动态抓取 Web 内容包装器数据

在这里,https://forecast.vassarlabs.com/,我想提取降雨量表数据;为了检查表格,您必须单击右上角的菜单图标。我想提取此数据表。

http://img4.mukewang.com/62f4f45f0001600213480693.jpg

我的代码:


from urllib.request import urlopen


import requests


from bs4 import BeautifulSoup


from selenium import webdriver


import os 



driver = webdriver.Chrome("C:/Users/DELL/Desktop/chromedriver.exe")


driver.get('https://forecast.vassarlabs.com/')


res = driver.execute_script("return document.documentElement.outerHTML")


driver.quit()


soup = BeautifulSoup(res, 'html.parser')



table = soup.find("div",class_='content-wrap')




ta=table.find('table',class_="table table-bordered table-striped responsive no-m ng-scope")


print(ta)


浮云间
浏览 164回答 2
2回答

慕桂英3389331

您也可以避免使用硒,并直接从API中获取硒。您需要做的唯一部分是解析json响应:import requestsimport pandas as pdurl = 'https://forecast.vassarlabs.com/api/commanddashboard/getdashboarddata/RAINFALL/24%20Hrs/District'jsonData = requests.get(url).json()jsonData = jsonData['Andhra Pradesh']results = pd.DataFrame()for k,v in jsonData.items():    row = pd.DataFrame(v['rainfallDataMap']).head(1)    row['District'] = k    results = results.append(row, sort=False).reset_index(drop=True)输出:print (results.to_string())    05:30-11:30  11:30-17:30  17:30-23:30  23:30-05:30  24 Hrs       District0           0.0         0.44         0.00          0.0    0.44  East Godavari1           0.0         0.00         0.00          0.0    0.00      Anantapur2           0.0         0.00         0.00          0.0    0.00         Kadapa3           0.0         0.00         0.00          0.0    0.00        Nellore4           0.0         0.07         0.00          0.0    0.07  West Godavari5           0.0         0.00         0.00          0.0    0.00     Srikakulam6           0.0         0.00         0.00          0.0    0.00        Kurnool7           0.0         0.00         0.00          0.0    0.00       Chittoor8           0.0         0.00         0.00          0.0    0.00        Krishna9           0.0         1.05         0.00          0.0    1.05  Visakhapatnam10          0.0         0.00         0.00          0.0    0.00       Prakasam11          0.0         0.12         0.00          0.0    0.12          Total12          0.0         0.21         0.01          0.0    0.22   Vizianagaram13          0.0         0.00         0.00          0.0    0.00         Guntur

胡说叔叔

from selenium import webdriverimport pandas as pdfrom selenium.webdriver.firefox.options import Optionsoptions = Options()options.add_argument('--headless')driver = webdriver.Firefox(options=options)driver.implicitly_wait(10)driver.get("https://forecast.vassarlabs.com/")myDynamicElement = driver.find_element_by_css_selector(    ".fa-list").click()df = pd.read_html(driver.page_source)[1]pd.DataFrame(df).to_csv("result.csv", index=False)driver.quit()输出:在线检查
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python