Skip to main content
 首页 » 编程设计

python之使用 Python 访问 Web 表之NIST 网站

2024年10月25日44bluestorm

我正在尝试访问 NIST 网站上的表格: http://physics.nist.gov/PhysRefData/XrayMassCoef/tab3.html

假设我单击元素锌。我想使用 python 2.7 将 Energy、u/p 和 u[en]/p 的信息检索到表格的 3 列中。

我开始学习 BeautifulSoup 和 Mechanize。但是,我发现很难在与此站点上的表格相关的 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