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,是否正确?如果没有提取器的代码,我们就说不出它为什么不工作。添加此信息以获得正确准确的答案。@Iulianextractor=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,是否正确?如果没有提取器的代码,我们就说不出它为什么不工作。添加此信息以获得正确准确的答案。@Iulianextractor=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个用户名与另一个变量比较氏族天数。我尝试了我能想到的一切,也在谷歌上搜索,但什么也没找到。