这是从http://www.flashscore.com/hockey/sweden/shl/results/
中提取HTML文件 <td title="Click for match detail!" class="cell_sa score bold">4:3<br><span class="aet">(3:3)</span></td>
<td title="Click for match detail!" class="cell_sa score bold">2:5</td>
我现在想在规定时间之后提取分数。
这意味着只要存在'span class = "aet"'
(td class="cell_sa score bold"
之后),我就需要从span class = "aet"
获取文字。如果span class = "aet"
不存在,我想从td class="cell_sa score bold"
中提取文字。
在上述情况下,所需的输出(在列表中)将是:
[3:3,2:5]
我怎么能用python中的xpath语句去做?
答案 0 :(得分:0)
您可以访问所需标签的文本节点,遵守您定义的条件:
(/tr/td[count(./span[@class = 'aet']) > 0]/span[@class = 'aet'] | /tr/td[0 = count(./span[@class = 'aet'])])/text()
我认为<td>
标记已归入<tr>
标记。
如果您想严格选择<td>
有&#39; cell_sa&#39;和&#39;得分&#39;并且&#39;大胆&#39;在每个[contains(@class, 'cell_sa')][contains(@class, 'score')][contains(@class, 'bold')]
之后添加td
。如下:
(/tr/td[contains(@class, 'cell_sa')][contains(@class, 'score')][contains(@class, 'bold')][count(./span[@class = 'aet']) > 0]/span[@class = 'aet'] | /tr/td[contains(@class, 'cell_sa')][contains(@class, 'score')][contains(@class, 'bold')][0 = count(./span[@class = 'aet'])])/text()
@class
检查方法顺序(就像它在css选择器中一样)。您可以将此检查实现为简单的字符串比较,从而产生脆弱的数据使用者