我有一个div表,其中每行有两个单元格/列。
第二个单元格/列有时有一个明文(<div class="something">Text</div>
),而有时它隐藏在“<div class="something"><a href="url">Text</a></div>
”内的“a”标记中。在
现在,除了链接的文本之外,我没有任何问题。我也可以单独获取链接文本,但我不知道如何同时获取所有内容,因此我得到了三列数据: 1第一列文本, 2第二列文本,无论是否链接, 三。链接,如果存在的话
提取所有未链接且有效的代码是:
times = scrapy.Selector(response).xpath('//div[contains(concat(" ", normalize-space(@class), " "), " time ")]/text()').extract()
titles = scrapy.Selector(response).xpath('//div[contains(concat(" ", normalize-space(@class), " "), " name ")]/text()').extract()
for time, title in zip(times, titles):
print time.strip(), title.strip()
我只能用
^{2}$但不知道如何将“查询”组合起来,把所有的东西组合起来。在
下面是一个HTML示例:
<div class="programRow rowOdd">
<div class="time ColorVesti">
22:55
</div>
<div class="name">
Dnevnik
</div>
</div>
<div class="programRow rowEven">
<div class="time ColorOstalo">
23:15
</div>
<div class="name">
<a class="recnik" href="/page/tv/sr/story/20/rts-1/2434373/kulturni-dnevnik.html" rel="/ajax/storyToolTip.jsp?id=2434373">Kulturni dnevnik</a>
</div>
</div>
示例输出(我无法获得):
22:55, Dnevnik, []
23:15, Kulturni dnevnik, /page/tv/sr/story/20/rts-1/2434373/kulturni-dnevnik.html
我要么得到前两列(不带链接文本),要么只得到带有上面代码示例的链接文本。在
如果我理解正确的话,那么您应该迭代程序节点,并为每个循环创建项。还有xpath快捷方式
//text()
,它捕获节点下的所有文本及其childrem尝试类似于:
相关问题 更多 >
编程相关推荐