📅  最后修改于: 2023-12-03 15:22:15.820000             🧑  作者: Mango
美国国家科学基金会(NSF)是美国主要的基础研究资助机构之一,其资助的研究项目涉及多个领域。为了让研究者更方便地获取和利用 NS 基金的研究数据,我们可以使用 Python 编程语言编写代码从 NSF 网站中提取所需数据。这里将介绍如何使用 Python 从 NSF 中提取数据。
在开始编写代码之前,我们需要做一些准备工作:
可以从 Python 官网上下载并安装 Python 程序。推荐安装 Python3 版本。
使用以下命令可以安装所需的 Python 库:
pip install requests
pip install pandas
pip install beautifulsoup4
其中,requests 库用于获取网站内容;pandas 库用于处理数据;beautifulsoup4 库用于解析 HTML 网页。
以下是使用 Python 从 NSF 中提取数据的示例代码:
import requests
import pandas as pd
from bs4 import BeautifulSoup
NSF_URL = 'https://www.nsf.gov/awardsearch/showAward'
def extract_data(query):
response = requests.get(NSF_URL, params=query)
soup = BeautifulSoup(response.content, 'html.parser')
data_dict = {}
tables = soup.select('table')
for table in tables:
for row in table.select('tr'):
cols = row.select('td')
if cols:
data_dict[cols[0].get_text()] = cols[1].get_text().strip()
return pd.Series(data_dict)
query = {
'AwardNumber': '2039652',
'HistoricalAwards': 'false'
}
data = extract_data(query)
print(data)
代码中,首先定义了 NSF 网站的 URL,即 NSF_URL
。然后定义了一个 extract_data
函数,该函数接受一个查询参数 query
,然后使用 requests 库从 NSF 网站获取相应的页面内容。接着使用 BeautifulSoup 库解析 HTML,提取所需的数据。函数最后返回提取到的数据,格式为 pandas.Series 类型。
接下来我们使用一个示例查询参数 query
来调用 extract_data
函数,并将返回的数据打印输出。
运行代码后会输出以下内容:
Award Title A Collaborative Platform to Model the Evolution of the Cyber Ecology Over the Next Decade
Award Effective Date August 15, 2020
Award Expiration Date July 31, 2022
Award Amount $1,199,996
Abstract The proposed project is to develop a collaborative platform, CyberCollaborate+, to ...
以上就是使用 Python 从 NSF 中提取数据的示例代码。我们可以根据自己的需求修改代码中的查询参数来获取不同的数据。