Python 仅将html表中定义的2列解析到字典中,以供以后使用

Python 仅将html表中定义的2列解析到字典中,以供以后使用,python,python-3.x,parsing,Python,Python 3.x,Parsing,我正试图解析我从一个带有请求模块的网站上获得的html表格中的两列。我所能做的是将所有列排序到一个文件中的一行中,以便易于阅读,但实际上我需要在字典中使用它,以便稍后我可以比较用户名SirFulgeruL的氏族日数,例如使用整数 以下是我目前的代码: from html_table_extractor.extractor import Extractor table_doc = """ <table class="table table-bordered"> <tbody&g

我正试图
解析
我从一个带有
请求
模块的网站上获得的html表格中的两列。我所能做的是将所有列排序到一个文件中的一行中,以便易于阅读,但实际上我需要在
字典中使用它,以便稍后我可以比较用户名
SirFulgeruL
氏族日数
,例如使用
整数
以下是我目前的代码:

from html_table_extractor.extractor import Extractor

table_doc = """
<table class="table table-bordered">
<tbody>
<tr>
<th><i class="fa fa-sort-numeric-desc"></i> Rank</th>
<th><i class="fa fa-address-card"></i> Name</th>
<th><i class="fa fa-usd"></i> Deposited money</th>
<th><i class="fa fa-clock-o"></i> Clan Days</th>
<th>Time last 7 days</th>
<th><i class="fa fa-gear"></i> Options</th> </tr>
<tr>
<td>7</td>
<td><i class="fa fa-circle text-red" data-toggle="tooltip" data-original-title="offline"></i> <a href="https://jadepanel.nephrite.ro/profile/SirFulgeruL2k19">SirFulgeruL2k19</a></td>
<td><font style="color:green">$417,090</font></td>
<td>140</td>
<td>11:57</td>
<td></td>
</tr>
<tr>
<td>6</td>
<td><i class="fa fa-circle text-red" data-toggle="tooltip" data-original-title="offline"></i> <a href="https://jadepanel.nephrite.ro/profile/Darius">Darius</a></td>
<td><font style="color:green">$2,717,020</font></td>
<td>127</td>
<td>09:42</td>
<td><a onclick="remove_clan(3080)">uninvite</a></td>
</tr>
""""

extractor = Extractor(table_doc).parse()
extractor.write_to_csv(path='.')

好的,您可以使用html_table_extractor将表格数据从html提取到名为
output.csv
的csv文件中

下一个操作是使用标准库
csv
模块解析该文件:

...
import csv
with open('output.csv') as fd:
    rd = csv.DictReader(fd, skipinitialspace=True)
    for row in rd:
        print({ k: row[k] for k in row if k in ['Name', 'Clan Days']})
这将输出:

{'Name': 'SirFulgeruL2k19', 'Clan Days': '140'}
{'Name': 'Darius', 'Clan Days': '127'}

好的,您可以使用html_table_extractor将表格数据从html提取到名为
output.csv
的csv文件中

下一个操作是使用标准库
csv
模块解析该文件:

...
import csv
with open('output.csv') as fd:
    rd = csv.DictReader(fd, skipinitialspace=True)
    for row in rd:
        print({ k: row[k] for k in row if k in ['Name', 'Clan Days']})
这将输出:

{'Name': 'SirFulgeruL2k19', 'Clan Days': '140'}
{'Name': 'Darius', 'Clan Days': '127'}

由于某些原因,它不会在用户名
后添加
data original title=“offline”>
,因此它看起来是这样的:
从代码中我看到您试图将2列(带有相对)标题保存到.csv,是否正确?如果没有提取器的代码,我们就说不出它为什么不工作。添加此信息以获得正确准确的答案。@Iulian
extractor=extractor(table_doc).parse()extractor.write_to_csv(path='))
这是在.csv文件中处理列的代码,它看起来像这样:`排名、姓名、存款、氏族天数、最后7天的时间、选项7、SirFulgeruL2k19、$417090',140,11:57,`但我只想将
名称
氏族日
保存到字典中。@Iulian:我假设OP使用的是来自的包,因为某些原因,它在
data original title=“offline”之后没有添加>
用户名
看起来是这样的:
从代码中我看到您试图将2列(带有相对)标题保存到.csv,是否正确?如果没有提取器的代码,我们就说不出它为什么不工作。添加此信息以获得正确准确的答案。@Iulian
extractor=extractor(table_doc).parse()extractor.write_to_csv(path='))
这是在.csv文件中处理列的代码,它看起来像这样:`排名、姓名、存款、氏族天数、最后7天的时间、选项7、SirFulgeruL2k19、$417090',140,11:57,`但是我只想把
名字
氏族日
保存到字典里。@Iulian:我想OP使用的是一个来自thank you的软件包。很遗憾,我还有1个问题。。例如,我不知道如何仅从1个用户名与另一个变量比较
氏族天数。我尝试了我能想到的一切,也在谷歌上搜索过,但没有找到任何东西。非常感谢。很遗憾,我还有1个问题。。例如,我不知道如何仅从1个用户名与另一个变量比较
氏族天数。我尝试了我能想到的一切,也在谷歌上搜索,但什么也没找到。