我正试图刮一张看起来像下面的桌子。
<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)但是我希望能够将它们组合起来!
不幸的是,行数因页面而异。
答案 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"}