【发布时间】:2019-09-25 05:47:04
【问题描述】:
我正在尝试从网页中抓取表格。
<tr valign="top">
<td class="doprawej bezlewej">
AT00BUWOG001
</td>
<td class="doprawej">
P
</td>
<td class="doprawej">
</td>
<td class="doprawej">
142
</td>
<td class="doprawej">
<b>BUWOG</b>
</td>
<td class="doprawej">
124 184 779
</td>
<td class="doprawej">
16 019,84
</td>
<td class="doprawej">
12 476,29
</td>
<td class="doprawej">
2018-07-31
</td>
<td class="doprawej">
H
</td>
<td class="doprawej">
1,28
</td>
<td class="doprawej">
14,00
</td>
<td class="doprawej bezprawej">
2,30
</td>
</tr>
<tr valign="top">
<td class="doprawej bezlewej">
PLBRSTM00015
</td>
<td class="doprawej">
P
</td>
<td class="doprawej">
LA
</td>
<td class="doprawej">
180
</td>
<td class="doprawej">
<b>CALATRAVA</b>
</td>
<td class="doprawej">
15 000 000
</td>
<td class="doprawej">
3,45
</td>
<td class="doprawej">
7,93
</td>
<td class="doprawej">
2017-03-31
</td>
<td class="doprawej">
H
</td>
<td class="doprawej">
0,44
</td>
<td class="doprawej">
0,00
</td>
<td class="doprawej bezprawej">
0,00
</td>
</tr>
我试过熊猫read_clipboard()
但我得到的结果是列中的数据最终出现在不同的列中,因为表中有一些空列。
ISIN Market Segment ... PBV PE Div Yield
0 PLNFI0600010 P LA ... 2018-12-31 H 0,14
1 PLNFI0800016 P 141 ... H 0,55 160,00
2 PL11BTS00015 P 650 ... J 9,44 22,60
3 PL4FNMD00013 P 641 ... H 1,25 6,80
4 PLABCDT00014 R 612 ... H 0,94 0,00
5 PLABMSD00015 P 411 ... 0,00 0,00 0,00
6 PLAB00000019 P 612 ... H 0,39 5,10
7 PLACSA000014 P 541 ... J 4,20 13,00
8 PLACTIN00018 P 612 ... H 0,51 0,00
9 PLADVIV00015 P 720 ... H 2,07 0,00
我可以在read_clipboard() 中设置一些属性,以使一行数据的长度始终与 HTML 中的长度相同吗?并且数据最终在右列中?
【问题讨论】:
-
你试试 pandas 中的 read_html() 函数?如果我明白你可以工作。[pandas.pydata.org/pandas-docs/version/0.23.4/generated/…
-
@tiagohbalves 我没有尝试 read_html,我不能使用链接,因为它是一个只有在身份验证后才能看到的页面。 HTML 页面本身很大,当我尝试将 html 直接复制粘贴到 python 中的变量时,它使我的计算机崩溃了。
-
我找到了这个解决方案,在您阅读下载的 html 文件时。 [stackoverflow.com/questions/25056120/…
标签: python pandas beautifulsoup