首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用标记来提取表数据

使用标记来提取表数据
EN

Stack Overflow用户
提问于 2016-05-15 23:08:12
回答 1查看 58关注 0票数 0

在python中,我尝试从HTML文件中获取一个表,然后将这些表属性存储在一个列表中,这样我就可以在已更改的表数据中进行比较。我能够使用机器自动下载ID\Password登录后的HTML页面,但将数据放入列表的第二部分是输出如下,标记就位。因此,虽然我似乎已经解决了存储数据的问题,但我不确定如何在传递数据之前删除标记?

链接到HTML:,我正在尝试从:https://www.dropbox.com/s/b684ecl7b2l3m10/guildwar.html?dl=0中提取数据

示例输出:(顶部),代码从bs4开始

代码语言:javascript
复制
[None, None, None, <td class="t1"> 1 </td>, <td class="t1"> 2 </td>,       <td class="t1"> 3 </td>]




from bs4 import BeautifulSoup

soup = BeautifulSoup(open("guildwar.html"))

rank_0 = []
color_1 = []
name_2 = []
land_3 = []
fortress_4 = []
power_5 = []


for el in soup.findAll('tr'):
    rank = el.find('td', {'class':'t1'})
    rank_0.append(rank)
    color = el.find('td', {'class':'t2'})
    color_1.append(color)
    name = el.find('td', {'class':'t3'})
    name_2.append(name)
    land = el.find('td', {'class':'t4'})
    land_3.append(land)
    fortress = el.find('td', {'class':'t5'})
    fortress_4.append(fortress)
    power = el.find('td', {'class':'t6'})
    power_5.append(power)

print("Ranking")
print(rank_0)
print("\nMagic Color")
print(color_1)
print("\nMage Name")
print(name_2)
print("\nLand")
print(land_3)
print("\nFortress")
print(fortress_4)
print("\nPower")
print(power_5)

===============================

EN

回答 1

Stack Overflow用户

发布于 2016-05-15 23:25:13

您可以对元素使用text属性,如下所示:

代码语言:javascript
复制
In [2]: s = '<tr><td class="t1"> 1 </td>, <td class="t1"> 2 </td>,       <td class="t1"> 3 </td></tr>'

In [4]: soup = BeautifulSoup(s, "lxml")

In [5]: for el in soup.findAll('tr'):
   ...:     rank = el.find('td', {'class': 't1'})
   ...:     print("Ranking > ", rank.text) # use text attribute
   ...:     
Ranking >   1 

另外,我可能会存储整个<table>并比较它是否随时间变化,然后您可以节省比较所有单独列的时间。并且只有在发生更新/更改时才存储数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37244629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档