【发布时间】:2022-01-24 04:48:28
【问题描述】:
我是一名新手程序员,正在创建一个网络抓取程序,该程序将加速将 .ict 文件从 NASA 的 EarthData 数据库转换为 .csv 文件以供编程使用。
我正在尝试从存储在此 URL 的 .ict 文件创建一个 pandas 数据框: https://asdc.larc.nasa.gov/data/AJAX/O3_1/2018/06/06/AJAX-O3_ALPHA_20180606_R1_F229.ict
并计划使用BeautifulSoup 库来抓取数据。当我编写soup.findAll 函数时,我意识到它返回了整个数据帧,因为它嵌套在一段 HTML 代码中。我认为由于所有数据都存储在一个段落中,这使得findAll函数难以使用。
我可以使用备用库来获取我正在寻找的数据吗?这是一些成功返回我试图抓取的文件的 HTML 的代码:
html_data = res.text
soup = BeautifulSoup(html_data, 'lxml')
print(soup.prettify())
这会返回数据:
<html>
<body>
<p>
[42 lines of metadata text]
Int_Start, Int_End, TIME, G_Lat, G_Lon, G_Alt, O3
72073.0, 72081.0, 72077.4, -9999.0000, -9999.0000, -9999.0000, 34.8884
72084.0, 72092.0, 72087.6, -9999.0000, -9999.0000, -9999.0000, 33.0842
72093.0, 72101.0, 72097.4, -9999.0000, -9999.0000, -9999.0000, 33.0454
72104.0, 72112.0, 72107.6, -9999.0000, -9999.0000, -9999.0000, 34.7138
... ... ... ... ... ... ...
... ... ... ... ... ... ...
</p>
</body>
</html>
有趣的是,数据并没有像代码那样存储为表格
page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')
dfs = pd.read_html(page.text)
显示未找到表的错误。任何可以用来帮助我绕过这个问题的建议都将不胜感激。谢谢!
【问题讨论】:
标签: python html pandas csv beautifulsoup