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&nbsp;184&nbsp;779
                            </td>
                            <td class="doprawej">
                                16&nbsp;019,84
                            </td>
                            <td class="doprawej">
                                12&nbsp;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&nbsp;000&nbsp;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&nbsp;184&nbsp;779
                            </td>
                            <td class="doprawej">
                                16&nbsp;019,84
                            </td>
                            <td class="doprawej">
                                12&nbsp;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&nbsp;000&nbsp;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&nbsp;184&nbsp;779
                            </td>
                            <td class="doprawej">
                                16&nbsp;019,84
                            </td>
                            <td class="doprawej">
                                12&nbsp;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&nbsp;000&nbsp;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