如何使用scrapy将表格转换为单个文本块

时间:2016-09-01 21:11:39

标签: xpath css-selectors scrapy

我正试图刮一张看起来像下面的桌子。

<table class="table">
    <caption>Caption</caption>
    <tbody>
        <tr>
            <th scope="row">Title</th>
            <td>Detail</td>
        </tr>
        <tr>
            <th scope="row">Title 2</th>
            <td>Detail 2</td>
        </tr>
    </tbody>
</table>

你将如何设置scrapy,以便我的输出文件生成类似于下面的输出?!

Title: Detail
Title2: Detail2

目前我可以使用两个css选择器获取所有文本(一个用于td&#39; s一个用于th&#39; s)但是我希望能够将它们组合起来!

不幸的是,行数因页面而异。

1 个答案:

答案 0 :(得分:0)

使用xpath:

tabledata={}
for i in response.xpath("//table[@class='table']//tr")
    tabledata[i.xpath("th/text()").extract_first()] = i.xpath("td/text()").extract_first()

输出

{"Title":"Detail", "Title 2":"Detail 2"}