Beautiful Soupを使った物性データのスクレイピング

Pocket

NIST Web bookからのデータ取得

NISTのWeb bookには、 以下のようにShomate式により気相の比熱、Enthalpy, Entropy計算に必要な係数が記載されています。

温度範囲毎に係数が分かれているため、上記のテーブルをまとめてスクレイピングし、csvファイルに落とすコードを作成していきます。

テーブルの抽出

NIST webbookで例えばCOの気相物性を調べると、そのURLは以下のようになっている。

Carbon monoxide

xxx.cgiまでがベースのURL、そこにCAS番号やMaskといったパラメーターが必要となる。

以下の例ではGoogle Colaboratory上でスクレイピングし、結果をcsvで出力している。

import os
import re
import csv
import requests
from bs4 import BeautifulSoup
params = {'ID': 'C630080' , 'Units': 'SI' , 'Mask' : '1' } 
response = requests.get('http://webbook.nist.gov/cgi/cbook.cgi', params=params)
soup = BeautifulSoup(response.text)
#h3タグを取得(Gas Phase Heat Capacity (Shomate Equation))
h3 = soup.h3
#最初のpタグ
p1 = soup.find_all('td', class_='exp right-nowrap') 
writer = csv.writer(file)
for row in rows:
     csvRow = []
     for cell in row.findAll(['td', 'th']):
         csvRow.append(cell.get_text())
         writer.writerow(csvRow)
files.download('data.csv')  

Pocket

コメント

タイトルとURLをコピーしました