Python 熊猫-如何从剪贴板读取表格
我正试图从网页上刮下一张桌子Python 熊猫-如何从剪贴板读取表格,python,pandas,beautifulsoup,Python,Pandas,Beautifulsoup,我正试图从网页上刮下一张桌子 <tr valign="top"> <td class="doprawej bezlewej"> AT00BUWOG001 </td> <td c
<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\u clipboard()
中设置一些属性,以便一行数据始终具有与HTML中相同的长度?数据最后出现在右边的列中?我尝试了方法并手动添加了
包装器
但你可以用这个:
from BeautifulSoup import BeautifulSoup
html = "..."
soup = BeautifulSoup(html)
print soup.prettify()
以下是我尝试过的:
html="""<table><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></table>"""
df= pd.read_html(html, header=None)[0]
print(df)
在pandas中,
read\u clipboard()
方法只是read\u csv()
的方便包装器,这意味着您可以在方法调用中使用read\u csv()
中的所有参数您在pandas中尝试read\u html()函数吗?如果我知道你可以工作。[@tiagohbalves我没有尝试阅读html,我不能使用链接,因为它是一个只有经过身份验证后才可见的页面。html页面本身相当大,当我试图将html复制粘贴到python中的变量时,它使我的计算机崩溃。我发现这个解决方案,你可以阅读下载的html文件。[谢谢,它可以工作,我只是在访问HTMLCreat复选标记时遇到问题✓
html="""<table><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></table>"""
df= pd.read_html(html, header=None)[0]
print(df)
0 1 2 3 4 5 6 7 \
0 AT00BUWOG001 P NaN 142 BUWOG 124 184 779 16 019,84 12 476,29
1 PLBRSTM00015 P LA 180 CALATRAVA 15 000 000 345 793
8 9 10 11 12
0 2018-07-31 H 128 1400 230
1 2017-03-31 H 44 0 0