【发布时间】:2015-01-27 16:58:00
【问题描述】:
我想要抓取以下 HTML 结构:
<table class="showList">
<tbody>
<tr class="showListHeader">
<th class="artistCol">Artists</th>
<th class="venueCol">Venue</th>
<th class="locationCol">Location</th>
</tr>
<tr class="dateRow">
<td>11/26/14</td>
</tr>
<tr>
<td class="artistCol">Artist1</td>
<td class="venueCol">Venue1</td>
<td class="locationCol">Location1</td>
</tr>
<tr>
<td class="artistCol">Artist2</td>
<td class="venueCol">Venue2</td>
<td class="locationCol">Location2</td>
</tr>
<tr>
<td class="artistCol">Artist3</td>
<td class="venueCol">Venue3</td>
<td class="locationCol">Location3</td>
</tr>
<tr class="dateRow">
<td>11/28/14</td>
</tr>
<tr>
<td class="artistCol">Artist4</td>
<td class="venueCol">Venue4</td>
<td class="locationCol">Location4</td>
</tr>
<tr>
<td class="artistCol">Artist5</td>
<td class="venueCol">Venue5</td>
<td class="locationCol">Location5</td>
</tr>
</tbody>
</table>
看起来有点像这样:
+----------+--------+-----------+
| Artist | Venue | Location |
+----------+--------+-----------+
| 11/26/14 | | |
| Artist1 | Venue1 | Location1 |
| Artist2 | Venue2 | Location2 |
| Artist3 | Venue3 | Location3 |
| 11/28/14 | | |
| Artist4 | Venue4 | Location4 |
| Artist5 | Venue5 | Location5 |
+----------+--------+-----------+
我想得到以下结果:
[
{date: 11/26/14, artist: Artist1, venue: Venue1, location: location1},
{date: 11/26/14, artist: Artist2, venue: Venue2, location: location2},
{date: 11/26/14, artist: Artist3, venue: Venue3, location: location3},
{date: 11/28/14, artist: Artist4, venue: Venue4, location: location4},
{date: 11/28/14, artist: Artist5, venue: Venue5, location: location5}
]
让我失望的是这些条目没有嵌套在日期中,它们是兄弟姐妹。 我知道如何使用 jQuery 来做到这一点,但对使用 CSS 选择器或 Scrapy 支持的 BeautifulSoup 知之甚少。任何有关我将如何解决此问题的帮助将不胜感激,如果我可以提供更多信息,请询问
【问题讨论】:
标签: css web-scraping css-selectors beautifulsoup scrapy