使用Python访问Web表 - NIST网站

时间:2014-09-19 06:29:50

标签: python beautifulsoup urllib2 mechanize urllib

我正在尝试从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列放在表格中?

1 个答案:

答案 0 :(得分:2)

如果我理解你, 试试这个

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