首页 > 解决方案 > 获取此数据的正确 xpath 是什么?

问题描述

我正在尝试访问某些 html 中的值,但我无法正确获取 xpath。

我尝试了几个 xpath 教程,也查看了几个 stackoverflow 响应,当然还有反复试验。我错过了一些重要的事情。

这是路径大致的样子:

div id='container' class='container' role='main'
    div class = 'row-fluid'>
        div class = 'col-md-12'
            div id = 'canvas
                div id = 'Error' class = 'error' align = 'center' </div>
                div id = 'subcanvas'
                    div id = 'w-box' class = 'grid-stack-instance-9644' [etc..]
                        div id = 'widget1' class = 'panel panel-default' style  = 'overflow: initial !important;'
                            div class = 'grid-stack-item-content cell'
                                table id = 'RptGrowthStatistics' class ='table stoff table-bordered table-condensed table-responsive etc...
                                    <thead>
                                    <tbody>
                                        <tr>
                                            <td nowrap='nowrap' class='L0'>
                                                <a>South San Francisco</a>
                                            <td/>
                                            <!---->
                                            <td class="Right">5,437</td>
                                            <td class="Right">282.78</td>
                                            <td class="Right">4.36</td>
                                            <td class="Right">3,573</td>
                                            <!---->
                                            <td class="Right">3,354</td>
                                            <td class="Right">5,737</td>
                                            <td class="Right">6,680</td>
                                            <td class="Right">876.07</td>

我正在尝试进入那个 td 类 = 您列出了“南旧金山”以及任何其他 td 值的地方。这就是我想要的数据。我已经尝试过

xpath(//table[@id="RptRoomStats"]/tbody/tr[1]/td[1]/a)  

没有成功。

我可以深入到 {'id' : 'subcanvas'} 但无法超越这一点

# gives {'id': 'Error', 'class': 'error', 'align': 'center'}
x = tree.xpath(".//form[@name]/div[5]/div/div/div/div")
print(x[0].attrib) 

标签: pythonhtmlxpathweb-scraping

解决方案


尝试使用以下 xpath。

//table[@id="RptGrowthStatistics"]/tbody/tr[1]/td[1]/a

截屏: 在此处输入图像描述


推荐阅读