气质数据提取物质信息并批量查阅、翻译

气质数据读取、分析、与物质的属性快速统计汇总并翻译

1. 目的

针对平台气相数据的快速读取并将关键信息提取与统计分析计算,利用百度翻译和通过特定网站整理出当前化学物质的性质说明。适用于批量处理数据例如大于5个以上数据。同时要求结果中英和化学物质属性同时汇总到统一的表格中。本过程主要基于matlab和python进行实现,同时针对学院仪器数据而设计程序过程

2.工作流

1. 测定气相数据
2. 批量提取测定结果中的关键信息
3. 将结果中的对应化学物质的属性自动批量下载保存
4. 统计分析数据中差异与定量分析

3. 数据结果分析流程

  • 输入数据类型 气相测定结果的xls表格
    在这里插入图片描述

  • 将输入数据文件转化为txt并调用matlab绘制文字云快速确定物质分布在这里插入图片描述
    atlab进行计算

  • 将计算结果粘贴到表格中
    在这里插入图片描述

  • 基于python打开特定网站调用表格中的Cas号查询化学品的信息

  • 统计分析气相结果,聚类与分类差异

%% 气质数据读取与翻译代码
clc
clear
for cc_xxx=1:1
    filename='jiupei-water_report20210611.txt';
    hj=readtable(filename);
    % hj(1:184,:) = [];
    p=0;
    for i=1:size(hj,1)
        a_lingshi=char(hj.Var2(i));
        if size(hj.Var1(i),1)~=0 && size(a_lingshi,2)~=0 && isnan(hj.Var2(i))~=1 %
            p=1+p;
            hj_p(p,:)=hj(i,:);
        end
    end
    hj_p = removevars(hj_p, 'Var8');
    hj_p = removevars(hj_p, 'Var9');
    hj_p = removevars(hj_p, 'Var11');
    hj_p = removevars(hj_p, 'Var13');
    hj_p = removevars(hj_p, 'Var5');
    p=0;
    for j=1:size(hj_p,1)
        if isempty((hj_p.Var1(j)))~=1
            p=1+p;
            hj_p_p(p,:)=hj_p(j,:);
        end
    end
    for i=1:size(hj_p_p,1)
        %     cx(i,1)=str2num(hj_p_p.Var14(i));
        cx(i,1)=hj_p_p.Var14(i);
        try
            pause(1)
            disp('请等待')
            cxx{i,1}=trastion_matlab(hj_p_p.Var7{i},'zh');
        catch
            pause(3)
            disp('请等待')
            cxx{i,1}=trastion_matlab(hj_p_p.Var7{i},'zh');
        end
        % cx(i,2)=str2num(hj_p_p.Var14{i});
    end
    wordcloud(hj_p_p.Var7,cx);
    savefig(gcf,strcat(filename,'结果图片.fig'))
    save(strcat(filename,'xx.mat'),'cxx','cx','hj_p_p','hj_p')
    figure
    wordcloud(cxx,cx);
    savefig(gcf,strcat(filename,'结果数据中文保存.fig'))
     cx=cellfun(@(x)str2double(x),cx);%读取的数据保存为数值类型
    clear cxx cx hj_p_p hj_p
end
% annotation('textbox',...
%     [0.269452380952381 0.838888888888889 0.0763809523809524 0.0571428571428573],...
%     'String',{'f'},...
%     'FitBoxToText','off');

%q = clipboard("paste");%閫氳繃鍓垏鏉胯幏鍙栭渶瑕佺炕璇戠殑鍘熸枃
%涓汉寮?鍙戣?匢D涓庡瘑閽?,鍒囧嬁鍏紑锛?

function runst_1=trastion_matlab(q,toLang)
% q='';%输入原文
appid = '';       %请输入自己的开发者ID
secretKey = '';   %此处为密
fromLang = 'auto';  %原文语种,默认自动识别
% toLang   = 'zh';    %译文语种,默认选择中文,从以下列表选择所需翻译的译文语种
%常用语言对照
Lang =["zh","en","jp","de","fra","kor","yue","cht","wyw",...
    "ru","th","pt","el","it","bul","fin","slo","ara",...
    "nl","est","cs","swe","vie","spa","rom","pl","dan","hu"]; %支持的常用语种
LangZH = ["中文","英语","日语","德语","法语","韩语","粤语","繁体中文",...
    "文言文","俄语","泰语","葡萄牙语","希腊语","意大利语","保加利亚语",...
    "芬兰语","斯洛文尼亚语","阿拉伯语","荷兰语","爱沙尼亚语","捷克语",...
    "瑞典语","越南语","西班牙语","罗马尼亚语","波兰语","丹麦语","匈牙利语"]; %语种中文名
myurl = 'https://fanyi-api.baidu.com/api/trans/vip/translate';
salt = randi([32768, 65536]);
sign = [appid, q, num2str(salt), secretKey];
sign = lower(mlreportgen.utils.hash(sign));
myurl = [myurl ,'?appid=' ,appid ,'&q=' ,urlencode(q) ,'&from=', fromLang,...
    '&to=' ,toLang ,'&salt=' ,num2str(salt),'&sign=' ,char(sign)];
data=webread(myurl); %请求参数并输出
translation=data.trans_result;
runst_1=translation.dst;
% clipboard('copy',translation.dst) %将翻译内容复制到剪切板

网站批量上传实例

from selenium import webdriver
from time import sleep
#1.创建Chrome浏览器对象,这会在电脑上在打开一个浏览器窗口
browser = webdriver.Firefox()

#2.通过浏览器向服务器发送URL请求
browser.get("https://cs.wellesley.edu/~btjaden/TargetRNA2/index.html")

#sleep(1)

#3.刷新浏览器
#browser.refresh()

#4.设置浏览器的大小
#browser.set_window_size(1400,800)

# #5.设置链接内容
browser.find_element_by_xpath('//*[@id="form1"]/textarea').send_keys(">RyhB\nGCGATCAGGAAGACCCTCGCGGAGAACCTGAAAGCACGACATTGCTCACATTGCTTCCAGTATTACTTAGCCAGCCGGGTGCTGGCTTTT")
browser.find_element_by_xpath('//*[@id="form1"]/input[1]').send_keys("Escherichia coli str. K-12 substr. MG1655")
browser.find_element_by_xpath('//*[@id="submitsmall"]').click()
#
sleep(1)
# element=browser.find_element_by_link_text("“下团组”时间")
# element.click()
a=browser.get_attribute_by_xpath('/html/body/div[2]/center[2]/table/tbody/tr[2]/td[2]/a');
print(a)

在这里插入图片描述
在这里插入图片描述

  • 案例二
from selenium import webdriver
from time import sleep
import urllib
import urllib.request
#1.创建Chrome浏览器对象,这会在电脑上在打开一个浏览器窗口
browser = webdriver.Firefox()

#2.通过浏览器向服务器发送URL请求
browser.get("https://www.chemsrc.com/casindex/")

#sleep(1)

#3.刷新浏览器
#browser.refresh()

#4.设置浏览器的大小
#browser.set_window_size(1400,800)

# #5.设置链接内容
browser.find_element_by_xpath('//*[@id="chemSearch"]').send_keys("75-07-0") #输入cas号
browser.find_element_by_xpath('//*[@id="scrollbar"]/div/span/button/span').click()#点击搜索
#
sleep(1)
# element=browser.find_element_by_link_text("“下团组”时间")
# element.click()
#获取界面需要数据
#获取熔点信息
a=browser.find_element_by_xpath('/html/body/div[4]/div[1]/div[1]/table[1]/tbody/tr[3]/td[2]').text
print(a)


#
# # 抓取页面方法,调用该方法返回抓取到数据
# def read_pageHtml(url):
#     file = urllib.request.urlopen(url)
#     data = file.read()
#     return data
#
#
# # 传入需要抓取页面的链接 并调用抓取页面方法获得页面数据
# url = "https://www.baidu.com/"
# data = read_pageHtml(url)
# # 控制台打印数据
# print(data)
#
#
# # 将数据生成txt文件方法 传入保存文件路径 storagePath 以及文件数据 data
# def storageToLocalFiles(storagePath, data):
#     fhandle = open(storagePath, "wb")
#     fhandle.write(data)
#     fhandle.close()
#
#
# # 调用文件数据保存方法
# storagePath = "C:/Users/Pathliu/Desktop/pyweb.txt"
# storageToLocalFiles(storagePath, data)
  • 进入网站
    在这里插入图片描述
  • 自动键入cas号 75-07-0 (乙醛) 并获得返回的物质信息
  • 将获取的物质信息打印输出
    在这里插入图片描述
    在这里插入图片描述

本地上传文件处理后下载保存本地并从命名

from selenium import webdriver
from time import sleep
import os
#1.创建Chrome浏览器对象,这会在电脑上在打开一个浏览器窗口
browser = webdriver.Firefox()
#2.通过浏览器向服务器发送URL请求
browser.get("https://www.aconvert.com/cn/pdf/xps-to-pdf/")
#sleep(1)
def file_name(file_dir):
    L = []
    for root, dirs, files in os.walk(file_dir):
        for file in files:
        # 读取pdb文件
            if os.path.splitext(file)[1] == '.xps':
                L.append(os.path.join(root , file))
        return L
# 读取本地文件夹下pdb文件(../gg/)
file_name_pdb=file_name('D:\\新建文件夹\\黄\\')
## 利用pymol处理本地pdb
apu=[]
apup=[]
for i in range(file_name_pdb.__len__()):

    #3.刷新浏览器
    #browser.refresh

    #4.设置浏览器的大小
    #browser.set_window_size(1400,800)

    # #5.设置链接内容
    filename_p = file_name_pdb[i]
    #'D:\\新建文件夹\\黄\\'+
    browser.find_element_by_xpath('//*[@id="file"]').send_keys(filename_p)
    sleep(1)
    browser.find_element_by_xpath('//*[@id="targetformat"]').send_keys('xls')
    browser.find_element_by_xpath('//*[@id="conversionform"]/div[3]/input[1]').click()
    browser.implicitly_wait(60)
    sleep(1)
    browser.find_element_by_xpath('/html/body/div[3]/div[3]/div[2]/div[1]/div[2]/div[1]/div/table/tbody/tr/td[2]/a').click()
    browser.implicitly_wait(60)
    px=browser.find_element_by_xpath('/html/body/div[3]/div[3]/div[2]/div[1]/div[2]/div[1]/div/table/tbody/tr/td[2]/a')
    px_a = browser.find_element_by_xpath(
        '/html/body/div[3]/div[3]/div[2]/div[1]/div[2]/div[1]/div/table/tbody/tr/td[3]')
    filename='C:\\Users\\Administrator\\Downloads\\'+px.text
    filePath = filename
    print(px.text)
    print(px_a.text)
    apu.append(px.text)
    apup.append(px_a.text)
    browser.implicitly_wait(60)
    #browser.implicitly_wait(60)
    #os.rename('C:\\Users\\Administrator\\Downloads\\' +px.text, 'C:\\Users\\Administrator\\Downloads\\' + px_a.text+'.xls')
    px=browser.find_element_by_xpath('/html/body/div[3]/div[3]/div[2]/div[1]/div[2]/div[1]/div/table/tbody/tr/td[2]/a')
    a=browser.find_element_by_xpath('/html/body/div[3]/div[3]/div[2]/div[1]/div[2]/div[1]/div/table/tbody/tr/td[4]/a[2]/i').click()

    #a=browser.find_element_by_xpath('//*[@id="tr1"]/td[2]').click()
    #a=browser.find_element_by_xpath('/html/body/div[3]/div[2]/div/div[1]/div[2]/table/tbody/tr[3]/td[2]/a').click()
    #a=browser.find_element_by_xpath('/html/body/div[3]/div[2]/div/div[1]/div[2]/table/tbody/tr[3]/td[1]').click()
    #'/html/body/div[3]/div[2]/div/div[1]/div[2]/table/tbody/tr[3]/td[1]

    #browser.find_element_by_xpath('/html/body/div[3]/div[3]/div[2]/div[1]/div[2]/div[1]/div/table/tbody/tr/td[2]/a').click()
    #/html/body/div[3]/div[3]/div[2]/div[1]/div[1]/form/div[3]/input[1]

    # element=browser.find_element_by_link_text("“下团组”时间")
    # element.click()
    #获取界面需要数据
    #熔点
    # a=browser.find_element_by_xpath('/html/body/div[4]/div[1]/div[1]/table[1]/tbody/tr[3]/td[2]').text
    #print(a)


    #
    # # 抓取页面方法,调用该方法返回抓取到数据
    # def read_pageHtml(url):
    #     file = urllib.request.urlopen(url)
    #     data = file.read()#     return data
    #
    #
    # # 传入需要抓取页面的链接 并调用抓取页面方法获得页面数据
    # url = "https://www.baidu.com/"
    # data = read_pageHtml(url)
    # # 控制台打印数据
    # print(data)
    #
    #
    # # 将数据生成txt文件方法 传入保存文件路径 storagePath 以及文件数据 data
    # def storageToLocalFiles(storagePath, data):
    #     fhandle = open(storagePath, "wb")
    #     fhandle.write(data)
    #     fhandle.close()
    #
    #
    # # 调用文件数据保存方法
    # storagePath = "C:/Users/Pathliu/Desktop/pyweb.txt"
    # storageToLocalFiles(storagePath, data)

    # browser.find_element_by_xpath().click()
    # browser.find_element_by_xpath('/html/body/div[3]/div[3]/div[2]/div[1]/div[2]/div[1]/div/table/tbody/tr/td[2]/a')
    # /html/body/div[3]/div[2]/div/div[1]/div[2]/table/tbody/tr[6]/td[2]/form/div/input



from selenium import webdriver
from time import sleep
import os
#1.创建Chrome浏览器对象,这会在电脑上在打开一个浏览器窗口
browser = webdriver.Firefox()
#2.通过浏览器向服务器发送URL请求
browser.get("https://www.aconvert.com/cn/pdf/xps-to-pdf/")
#sleep(1)
def file_name(file_dir):
    L = []
    for root, dirs, files in os.walk(file_dir):
        for file in files:
        # 读取pdb文件
            if os.path.splitext(file)[1] == '.xps':
                L.append(os.path.join(root , file))
        return L
# 读取本地文件夹下pdb文件(../gg/)
file_name_pdb=file_name('D:\\新建文件夹\\重复跑')
## 利用pymol处理本地pdb
apu=[]
apup=[]

for i in range(file_name_pdb.__len__()):
    #3.刷新浏览器
    #browser.refresh

    #4.设置浏览器的大小
    #browser.set_window_size(1400,800)
    try:
        # #5.设置链接内容
        filename_p = file_name_pdb[i]
        #'D:\\新建文件夹\\黄\\'+
        browser.implicitly_wait(60)
        browser.find_element_by_xpath('//*[@id="file"]').send_keys(filename_p)
        browser.find_element_by_xpath('//*[@id="targetformat"]').send_keys('xls')
        browser.find_element_by_xpath('//*[@id="conversionform"]/div[3]/input[1]').click()
        browser.implicitly_wait(60)
        browser.find_element_by_xpath('/html/body/div[3]/div[3]/div[2]/div[1]/div[2]/div[1]/div/table/tbody/tr/td[2]/a').click()
        browser.implicitly_wait(60)
        px=browser.find_element_by_xpath('/html/body/div[3]/div[3]/div[2]/div[1]/div[2]/div[1]/div/table/tbody/tr/td[2]/a')
        px_a = browser.find_element_by_xpath(
            '/html/body/div[3]/div[3]/div[2]/div[1]/div[2]/div[1]/div/table/tbody/tr/td[3]')
        filename='C:\\Users\\Administrator\\Downloads\\'+px.text
        filePath = filename
        if px.text=='Conversion Failed':
            browser.close()
            browser = webdriver.Firefox()
            # 2.通过浏览器向服务器发送URL请求
            browser.get("https://www.aconvert.com/cn/pdf/xps-to-pdf/")
            continue
        print(px.text)
        print(px_a.text)
        apu.append(px.text)
        apup.append(px_a.text)
        browser.implicitly_wait(60)

        #browser.implicitly_wait(60)
        #os.rename('C:\\Users\\Administrator\\Downloads\\' +px.text, 'C:\\Users\\Administrator\\Downloads\\' + px_a.text+'.xls')
        px=browser.find_element_by_xpath('/html/body/div[3]/div[3]/div[2]/div[1]/div[2]/div[1]/div/table/tbody/tr/td[2]/a')
        a=browser.find_element_by_xpath('/html/body/div[3]/div[3]/div[2]/div[1]/div[2]/div[1]/div/table/tbody/tr/td[4]/a[2]/i').click()
        print('p')
        continue
    except:
        browser = webdriver.Firefox()
        # 2.通过浏览器向服务器发送URL请求
        browser.get("https://www.aconvert.com/cn/pdf/xps-to-pdf/")
        continue


for i in range(apu.__len__()):
    try:
        os.rename('C:\\Users\\Administrator\\Downloads\\' + apu[i],
                      'C:\\Users\\Administrator\\Downloads\\' + apup[i] + '.xls')
    except:
        continue
    #a=browser.find_element_by_xpath('//*[@id="tr1"]/td[2]').click()
    #a=browser.find_element_by_xpath('/html/body/div[3]/div[2]/div/div[1]/div[2]/table/tbody/tr[3]/td[2]/a').click()
    #a=browser.find_element_by_xpath('/html/body/div[3]/div[2]/div/div[1]/div[2]/table/tbody/tr[3]/td[1]').click()
    #'/html/body/div[3]/div[2]/div/div[1]/div[2]/table/tbody/tr[3]/td[1]

    #browser.find_element_by_xpath('/html/body/div[3]/div[3]/div[2]/div[1]/div[2]/div[1]/div/table/tbody/tr/td[2]/a').click()
    #/html/body/div[3]/div[3]/div[2]/div[1]/div[1]/form/div[3]/input[1]

    # element=browser.find_element_by_link_text("“下团组”时间")
    # element.click()
    #获取界面需要数据
    #熔点
    # a=browser.find_element_by_xpath('/html/body/div[4]/div[1]/div[1]/table[1]/tbody/tr[3]/td[2]').text
    #print(a)


    #
    # # 抓取页面方法,调用该方法返回抓取到数据
    # def read_pageHtml(url):
    #     file = urllib.request.urlopen(url)
    #     data = file.read()#     return data
    #
    #
    # # 传入需要抓取页面的链接 并调用抓取页面方法获得页面数据
    # url = "https://www.baidu.com/"
    # data = read_pageHtml(url)
    # # 控制台打印数据
    # print(data)
    #
    #
    # # 将数据生成txt文件方法 传入保存文件路径 storagePath 以及文件数据 data
    # def storageToLocalFiles(storagePath, data):
    #     fhandle = open(storagePath, "wb")
    #     fhandle.write(data)
    #     fhandle.close()
    #
    #
    # # 调用文件数据保存方法
    # storagePath = "C:/Users/Pathliu/Desktop/pyweb.txt"
    # storageToLocalFiles(storagePath, data)

    # browser.find_element_by_xpath().click()
    # browser.find_element_by_xpath('/html/body/div[3]/div[3]/div[2]/div[1]/div[2]/div[1]/div/table/tbody/tr/td[2]/a')
    # /html/body/div[3]/div[2]/div/div[1]/div[2]/table/tbody/tr[6]/td[2]/form/div/input



  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值