我正在尝试从NIST网站访问一个表:
http://physics.nist.gov/PhysRefData/XrayMassCoef/tab3.html
假设我单击元素锌。我想使用python 2.7将Energy,u / p和u [en] / p的信息检索到表的3列中。
我开始学习BeautifulSoup和机械化。但是,我发现很难在与该站点上的表相关的HTML代码中识别出清晰的模式。
我正在寻找的是某种类似的方法:
import mechanize
from bs4 import BeautifulSoup
page=mech.open("http://physics.nist.gov/PhysRefData/XrayMassCoef/tab3.html")
html = page.read()
soup = BeautifulSoup(html)
我的想法是尝试:
table = soup.find("table",...)
上面的...将是一些标识符。我在上面的NIST网站上找不到明确的标识符。
如何使用python 2.7导入此表?
编辑:是否可以将这3列放在表中?
最佳答案
如果我很了解你
尝试这个:
from bs4 import BeautifulSoup
import requests
respond = requests.get("http://physics.nist.gov/PhysRefData/XrayMassCoef/ElemTab/z30.html")
soup = BeautifulSoup(respond.text)
l = soup.find('table').find('table').find_all('tr')
for i in range(3 , len(l)):
print l[i].get_text()
编辑:
另一种方法(获取ASCII列)并将行放入列表l:
from bs4 import BeautifulSoup
import requests
respond = requests.get("http://physics.nist.gov/PhysRefData/XrayMassCoef/ElemTab/z30.html")
soup = BeautifulSoup(respond.text)
l = soup.find('table').find('pre').get_text()[145:].split("\n")
print l