EPA CompTox 化學儀表板收到更新,我的舊代碼不再能夠刮取化學物質的沸點。有人能幫我刮一下實驗平均沸點嗎?我需要能夠撰寫一個 R 代碼來回圈遍歷幾種化學物質。
示例網頁:
丙酮:https
:
//comptox.epa.gov/dashboard/chemical/properties/DTXSID8021482
甲烷:https : //comptox.epa.gov/dashboard/chemical/properties/DTXSID8025545
我試過了read_html(),xmlParse()但沒有成功。實驗平均沸點 (ExpAvBP) 值未顯示在 XML 中。
我曾嘗試使用ContentScraper()from RCrawler,但無論我嘗試什么,它都只回傳 NA 。此外,這僅適用于列出的第一個網頁,因為單元格 ID 隨每種化學物質而變化。
ContentScraper(Url="https://comptox.epa.gov/dashboard/chemical/properties/DTXSID8021482", XpathPatterns = "//*[@id='cell-225']")
我曾嘗試使用readLines(),但所有資訊都塞進了最后一個腳本標記中,我不確定如何僅隔離 ExpAvBP 值。看起來價值存盤在其他地方?例如,下面是我認為是最后一個腳本標簽中的沸點資訊。
丙酮:
聯合國糧食及農業組織”,說明:“FAO\u002FWHO食品添加劑聯合專家委員會(JECFA)是一個國際專家科學委員會,由聯合國糧食及農業組織(FAO)和世界衛生組織 (WHO)。網址:\u003Ca href="http:\u002F\u002Fwww.fao.org\u002Fhome\u002F" target="_blank"\u003Ehttp:\u002F\u002Fwww.fao.org\u002Fhome\u002F\u003C\0,實驗細節:[]},{value:56.05,minValue:e,maxValue:e,source:"Abooali et al. 國際。J.制冷。2014, 40, 282–293",描述:"Abooali, D.;Sobati, MA 預測純制冷劑正常沸點和正常沸點蒸發焓的新方法:QSPR 方法。(\u003Ca href="http:
甲烷:
{unit:cO,name:"Boiling Point",predicted:{rawData:[{value:at,minValue:f,maxValue:f,source:bB,description:bb,modelName:"ACD_BP",modelId:135,hasOpera :d,globalApplicability:f,hasQmrfPdf:d,details:{value:ag,link:f,showLink:d},qmrf:{value:f,link:f,showLink:d}},{value:hl,minValue :f,maxValue:f,source:aF,description:ba,modelName:"OPERA_BP",modelId:dv,hasOpera:a,globalApplicability:s,hasQmrfPdf:a,details:{value:O,link:"http:\ u002F\u002Fcomptox-dev.epa.gov\u002Fdashboard\u002Fdsstoxdb\u002Fcalculation_details?model_id=27&search=25545",showLink:a},qmrf:{value:O,link:"http:\u0002Fcalculation_details? \u002Fdashboard\u002Fdsstoxdb\u002Fdownload_qmrf_pdf?model=27",showLink:a}},{value:cP,minValue:f,maxValue:f,source:bZ,description:b_,modelName:"EPISUITE_BP",modelId:dy,hasOpera :d,globalApplicability:f,hasQmrfPdf:d,details:{value:ag,link:f,showLink:d},qmrf:{value:f,link:f,showLink:d}}],count:bH,mean:-129.25300000000001 ,min:at,max:cP,range:[at,cP],median:hl},experimental:{rawData:[{value:at,minValue:at,maxValue:at,source:hm,description:hn,experimentalDetails :[]},{value:cQ,minValue:f,maxValue:f,source:bC,description:bD,experimentalDetails:[]}],count:H,mean:ho,min:at,max:cQ,range :[at,cQ],median:ho},arrKey:"BOILING_POINT"}arrKey:"BOILING_POINT"}arrKey:"BOILING_POINT"}
任何幫助或見解將不勝感激!
uj5u.com熱心網友回復:
由于資料不是表格格式,我們必須提取文本并通過匹配模式提取沸點溫度BoilingPoint。
library(rvest)
library(dplyr)
library(RSelenium)
url = 'https://comptox.epa.gov/dashboard/chemical/properties/DTXSID8025545'
driver = rsDriver(browser = c("firefox"))
remDr <- driver[["client"]]
remDr$navigate(url)
df = remDr$getPageSource()[[1]] %>%
read_html() %>% html_nodes(xpath = '//*[@id="__layout"]/div/div[5]/div[2]/main/div/div[3]/div[2]/div/div[2]/div[2]/div[3]') %>%
html_text()
現在得到沸騰溫度。參考https://stackoverflow.com/a/35936065/12135618
df1 = df %>% str_remove_all( '\n') %>% str_replace_all( ' ', '')
as.numeric(sub(".*?BoilingPoint.*?(\\d ).*", "\\1", df1))
[1] 163
您可能需要進一步微調才能獲得沸點溫度的小數點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/377779.html
上一篇:為什么我無法抓取這些值
