【问题标题】:Accessing web table using Python - NIST website使用 Python 访问 Web 表 - NIST 网站
【发布时间】:2014-11-13 16:19:31
【问题描述】:

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

【问题讨论】:

    标签: python beautifulsoup urllib2 mechanize urllib


    【解决方案1】:

    如果我理解你的话, 试试这个:

    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
    

    【讨论】:

    • CodeNinja:这似乎是将信息打印到屏幕上。我有两个问题:你能详细解释一下最后三行吗?湾。是否可以将其放在表格中而不是打印到屏幕上?
    • 我编辑了我的答案。要了解 find() 参数,您需要查看 html 树。
    • CodeNinja:编辑没有成功。它给出了这个错误:Traceback(最近一次调用最后一次):文件“C:/Python27/test3.py”,第 7 行,在 l = soup.find('table').find('pre') 中。 get_text()[145:].split("\n") AttributeError: 'NoneType' 对象没有属性 'find'
    • 第二个脚本(获取 ASCII 表),为什么使用 145?
    • soup.find('table').find('pre').get_text() 返回包含所有数据的字符串(ASCII 格式表)。我们不需要前 145 个字符,所以我们使用 [145:]。尝试使用不带 [145:] 的代码来找出前 145 个字符中的内容。
    猜你喜欢
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多