update
This commit is contained in:
236
scripts/nasa1.py
236
scripts/nasa1.py
@@ -1,4 +1,4 @@
|
||||
import csv
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import time
|
||||
@@ -6,11 +6,14 @@ from datetime import datetime
|
||||
|
||||
import mysql.connector
|
||||
import requests
|
||||
import pandas as pd
|
||||
|
||||
from common import db_config, upload_to_minio, save_to_db_import_record, get_md5
|
||||
|
||||
# https://nepp.nasa.gov/radhome/dev/parts.cfc?method=getParts
|
||||
# https://nepp.nasa.gov/radhome/raddatabase/raddatabase.html
|
||||
# 定义 API URL
|
||||
api_url = 'https://radhome.gsfc.nasa.gov/radhome/dev/parts.cfc?method=getParts'
|
||||
api_url = 'https://nepp.nasa.gov/radhome/dev/parts.cfc?method=getParts'
|
||||
|
||||
# 设置请求头
|
||||
headers = {
|
||||
@@ -37,7 +40,7 @@ data = {
|
||||
os.makedirs('downloaded_files', exist_ok=True)
|
||||
|
||||
# 文件前缀
|
||||
file_prefix = 'https://radhome.gsfc.nasa.gov/radhome/papers/'
|
||||
file_prefix = 'https://nepp.nasa.gov/radhome/papers/'
|
||||
|
||||
# CSV 表头
|
||||
csv_header = [
|
||||
@@ -66,7 +69,7 @@ csv_header = [
|
||||
def scrape():
|
||||
nasa1_connection = mysql.connector.connect(**db_config)
|
||||
try:
|
||||
# 发送请求
|
||||
# 发送请求
|
||||
response = requests.post(api_url, headers=headers, data=data)
|
||||
response.raise_for_status() # 检查请求是否成功
|
||||
|
||||
@@ -88,119 +91,118 @@ def scrape():
|
||||
folder_path = os.path.join('downloaded_files', part_number)
|
||||
os.makedirs(folder_path, exist_ok=True)
|
||||
|
||||
# 创建 CSV 文件
|
||||
csv_file_path = os.path.join(folder_path, 'data.csv')
|
||||
with open(csv_file_path, 'w', newline='', encoding='utf-8') as csv_file:
|
||||
csv_writer = csv.writer(csv_file)
|
||||
csv_writer.writerow(csv_header) # 写入表头
|
||||
|
||||
# 填写 CSV 数据
|
||||
csv_row = [
|
||||
"", # 序号
|
||||
"", # 试验对象类型
|
||||
row[3], # 试验开始日期
|
||||
"", # 试验结束日期
|
||||
"", # 试验对象名称
|
||||
row[1], # 试验对象型号
|
||||
"", # 试验对象数量
|
||||
row[6], # 试验性质
|
||||
"", # 试验目的
|
||||
"", # 装置名称
|
||||
"", # 数据提供单位
|
||||
"", # 试验委托单位
|
||||
"", # 失效判据
|
||||
"", # 失效数量
|
||||
"", # 试验结果描述
|
||||
"", # 成果
|
||||
"", # 来源项目名称
|
||||
"", # 来源项目类型
|
||||
"", # 分类
|
||||
"", # 元器件名称
|
||||
"", # 元器件型号
|
||||
"", # 元器件批号
|
||||
row[2], # 生产单位
|
||||
"", # 是否国产
|
||||
"", # 元器件成熟度
|
||||
"", # 晶圆材料
|
||||
"", # 晶圆批号
|
||||
"", # 封装材料
|
||||
"", # 封装技术
|
||||
"", # 是否倒装
|
||||
"", # 制造工艺
|
||||
"", # 工艺特征尺寸
|
||||
"", # 工艺平台
|
||||
"", # 工艺代号
|
||||
"", # 工艺版本
|
||||
"", # 质量等级
|
||||
"", # 加固措施
|
||||
"", # 工作原理
|
||||
"", # 供货能力
|
||||
"", # 应用经历
|
||||
"", # 规范手册
|
||||
"", # 器件图片
|
||||
"", # 电子系统分类
|
||||
"", # 电子系统名称
|
||||
"", # 电子系统型号
|
||||
"", # 生产单位
|
||||
"", # 电子系统功能
|
||||
"", # 电子系统加固措施
|
||||
"", # 电子系统图片
|
||||
"", # 材料名称
|
||||
"", # 材料型号
|
||||
"", # 材料组分
|
||||
"", # 材料用途
|
||||
"", # 材料生产单位
|
||||
"", # 材料物理结构
|
||||
"", # 材料使用经历
|
||||
"", # 辐照试验大纲
|
||||
"", # 大纲审核专家类别
|
||||
"", # 辐照试验所依据的标准规范
|
||||
"", # 试验步骤(过程)描述
|
||||
"", # 辐照过程是否加电
|
||||
"", # 直流偏置条件描述
|
||||
"", # 交流偏置条件描述
|
||||
"", # 时钟频率
|
||||
"", # 测试图形
|
||||
"", # 其他偏置条件
|
||||
"", # 辐照偏置原理图
|
||||
"", # 测试方式
|
||||
"", # 测试原理图
|
||||
"", # 试验用仪器名称
|
||||
"", # 试验用仪器型号
|
||||
"", # 试验用仪器生产厂家
|
||||
"", # 试验用仪器检定证书
|
||||
"", # 试验用软件名称
|
||||
"", # 试验用软件开发单位
|
||||
"", # 试验用软件版本号
|
||||
"", # 试验现场照片
|
||||
"", # 测试人员姓名
|
||||
"", # 测试人员单位
|
||||
"", # 测试人员电话
|
||||
"", # 装置运行人员
|
||||
"", # 第三方人员
|
||||
"", # 第三方人员单位
|
||||
"", # 第三方人员电话
|
||||
"", # 其他需要说明的事项
|
||||
"", # 是否采用铅铝屏蔽
|
||||
"", # 剂量率
|
||||
"", # 总剂量
|
||||
"", # 剂量等效材料
|
||||
"", # 试验对象编号
|
||||
"", # 测试参数名称
|
||||
"", # 测试参数单位
|
||||
"", # 测试参数结果
|
||||
"", # 是否为加速试验后数据
|
||||
"", # 是否为退火数据
|
||||
"", # 退火温度
|
||||
"", # 退火时间
|
||||
"", # 原始数据
|
||||
"", # 数据处理方法
|
||||
"", # 其他需要说明的事项
|
||||
]
|
||||
|
||||
# 写入 CSV 行
|
||||
csv_writer.writerow(csv_row)
|
||||
# 创建 DataFrame 并保存为 Excel 文件
|
||||
xlsx_file_path = os.path.join(folder_path, 'data.xlsx')
|
||||
|
||||
# 填写数据
|
||||
data_row = [
|
||||
"", # 序号
|
||||
"", # 试验对象类型
|
||||
row[3], # 试验开始日期
|
||||
"", # 试验结束日期
|
||||
"", # 试验对象名称
|
||||
row[1], # 试验对象型号
|
||||
"", # 试验对象数量
|
||||
row[6], # 试验性质
|
||||
"", # 试验目的
|
||||
"", # 装置名称
|
||||
"", # 数据提供单位
|
||||
"", # 试验委托单位
|
||||
"", # 失效判据
|
||||
"", # 失效数量
|
||||
"", # 试验结果描述
|
||||
"", # 成果
|
||||
"", # 来源项目名称
|
||||
"", # 来源项目类型
|
||||
"", # 分类
|
||||
"", # 元器件名称
|
||||
"", # 元器件型号
|
||||
"", # 元器件批号
|
||||
row[2], # 生产单位
|
||||
"", # 是否国产
|
||||
"", # 元器件成熟度
|
||||
"", # 晶圆材料
|
||||
"", # 晶圆批号
|
||||
"", # 封装材料
|
||||
"", # 封装技术
|
||||
"", # 是否倒装
|
||||
"", # 制造工艺
|
||||
"", # 工艺特征尺寸
|
||||
"", # 工艺平台
|
||||
"", # 工艺代号
|
||||
"", # 工艺版本
|
||||
"", # 质量等级
|
||||
"", # 加固措施
|
||||
"", # 工作原理
|
||||
"", # 供货能力
|
||||
"", # 应用经历
|
||||
"", # 规范手册
|
||||
"", # 器件图片
|
||||
"", # 电子系统分类
|
||||
"", # 电子系统名称
|
||||
"", # 电子系统型号
|
||||
"", # 生产单位
|
||||
"", # 电子系统功能
|
||||
"", # 电子系统加固措施
|
||||
"", # 电子系统图片
|
||||
"", # 材料名称
|
||||
"", # 材料型号
|
||||
"", # 材料组分
|
||||
"", # 材料用途
|
||||
"", # 材料生产单位
|
||||
"", # 材料物理结构
|
||||
"", # 材料使用经历
|
||||
"", # 辐照试验大纲
|
||||
"", # 大纲审核专家类别
|
||||
"", # 辐照试验所依据的标准规范
|
||||
"", # 试验步骤(过程)描述
|
||||
"", # 辐照过程是否加电
|
||||
"", # 直流偏置条件描述
|
||||
"", # 交流偏置条件描述
|
||||
"", # 时钟频率
|
||||
"", # 测试图形
|
||||
"", # 其他偏置条件
|
||||
"", # 辐照偏置原理图
|
||||
"", # 测试方式
|
||||
"", # 测试原理图
|
||||
"", # 试验用仪器名称
|
||||
"", # 试验用仪器型号
|
||||
"", # 试验用仪器生产厂家
|
||||
"", # 试验用仪器检定证书
|
||||
"", # 试验用软件名称
|
||||
"", # 试验用软件开发单位
|
||||
"", # 试验用软件版本号
|
||||
"", # 试验现场照片
|
||||
"", # 测试人员姓名
|
||||
"", # 测试人员单位
|
||||
"", # 测试人员电话
|
||||
"", # 装置运行人员
|
||||
"", # 第三方人员
|
||||
"", # 第三方人员单位
|
||||
"", # 第三方人员电话
|
||||
"", # 其他需要说明的事项
|
||||
"", # 是否采用铅铝屏蔽
|
||||
"", # 剂量率
|
||||
"", # 总剂量
|
||||
"", # 剂量等效材料
|
||||
"", # 试验对象编号
|
||||
"", # 测试参数名称
|
||||
"", # 测试参数单位
|
||||
"", # 测试参数结果
|
||||
"", # 是否为加速试验后数据
|
||||
"", # 是否为退火数据
|
||||
"", # 退火温度
|
||||
"", # 退火时间
|
||||
"", # 原始数据
|
||||
"", # 数据处理方法
|
||||
"", # 其他需要说明的事项
|
||||
]
|
||||
|
||||
# 创建 DataFrame
|
||||
df = pd.DataFrame([data_row], columns=csv_header)
|
||||
df.to_excel(xlsx_file_path, index=False)
|
||||
|
||||
# 已直接创建了 Excel 文件,不需要再转换
|
||||
# 下载文件
|
||||
for file_name in file_links:
|
||||
file_name = file_name.strip() # 去除空格
|
||||
@@ -248,3 +250,5 @@ def scrape():
|
||||
# 输出数据
|
||||
# for row in json_data['ROWS']:
|
||||
# print(row)
|
||||
|
||||
scrape()
|
||||
Reference in New Issue
Block a user