- 一个基于selenium的美国EPA的ECOTOX毒性数据库爬虫
- python新手, 请多指教
- 美国EPA的ECOTOX官网: ECOTOX | Search (epa.gov)
- 要下载Chrome浏览器
- 需下载ChromeDriver, 一定要下载和自己电脑上Chrome版本一致的ChromeDriver(在 设置->关于Chrome 中查看)
- 下载网址: 国内ChromeDriver镜像站
- 解压后, 将ChromeDriver.exe所在文件夹添加到环境变量中
- 在
main()
函数中, 按注释提示填入化合物, 物种(学名), 毒性终点, 时间长度(天) 程序对每一个物种为单位(外层循环), 对每个化合物进行毒性数据查询
def main():
ds = ECOTOX_data_source(
# 化合物
['DDT', 'hexachlorobenzene', 'heptachlor'],
# 物种(学名)
['Lepomis', 'Bufo'],
# 毒性终点
['LC50', 'LC50'],
# 时间长度(天)
[4, 1]
)
# 检查源数据是否合规
ds.check()
# 收集所有数据并存储
ECOTOX_collect_all_data_and_document(ds)
-
程序运行产生两个文件,
log.txt
记录每次查询的结果 每一行的记录为: 物种, 化合物, 毒性终点, 时长, 毒性数据(选中的毒性数据的几何平均值), 所有查询选中源数据如果没有选中的数据, 毒性数据为0, 源数据为空集
保留5位小数, 单位为mg/L或AI mg/L
Lepomis DDT LC50 4_Day(s) 0.00684 [0.0034, 0.009, 0.0095, 0.0022, 0.016, 0.0064, 0.0088, 0.007, 0.0028, 0.003, 0.0039, 0.0067, 0.0064, 0.0044, 0.0036, 0.005, 0.0075, 0.0067, 0.0028, 0.0036, 0.0018, 0.0043, 0.0017, 0.003, 0.007, 0.007, 0.0036, 0.0012, 0.0046, 0.0094, 0.0028, 0.0049, 0.0125, 0.0047, 0.016, 0.005, 0.0027, 0.0029, 0.0125, 0.008, 0.0032, 0.0109, 0.0065, 0.0099, 0.0086, 0.0063, 0.0016, 0.0021, 0.0043, 0.0058, 0.0056, 0.015, 0.0022, 0.00403, 0.0074, 0.00403, 0.007, 0.042, 0.062, 0.04, 0.04, 0.062, 0.062, 0.032, 0.079, 0.051]
Lepomis hexachlorobenzene LC50 4_Day(s) 6.96742 [7.6, 12.0, 3.4, 7.6]
Lepomis heptachlor LC50 4_Day(s) 0.01545 [0.017, 0.019, 0.022, 0.018, 0.019, 0.019, 0.013, 0.013, 0.017, 0.017, 0.0053]
Bufo DDT LC50 1_Day(s) 2.06623 [5.3, 5.4, 2.4, 2.2, 1.4, 0.76, 1.0]
Bufo hexachlorobenzene LC50 1_Day(s) 0.00000 []
Bufo heptachlor LC50 1_Day(s) 0.84400 [0.844]
- 生成的
result.txt
将log.txt中的几何平均值单独记录, 每一行为一个物种, 每一列为一个化合物(这里没有打印化合物)
0.00684 6.96742 0.01545 Lepomis
2.06623 0.00000 0.84400 Bufo
- 目前由于个人需求, 仅查询EC50与LC50
- 因为偷懒, 我设置每页显示100个数据, 仅对这一页的100个数据进行筛选(一般没那么多数据), 也没有设计当数据超过100个的时候的警报
- 听说操作excel会比较慢, 所以直接写在
.txt
里了
- 想在headless状态下进行数据收集, 但是似乎就不能通过点击按钮来使得textarea变得interactable
- 有的时候网卡, textarea里面输入不进去, 也有的时候会弹出警告框, 不知道为啥