前の要素 text() が特定の基準に一致する場合に要素を抽出したい。例えば、
<html>
<div>
<table class="layouttab">
<tbody>
<tr>
<td scope="row" class="srb">General information: </td>
<td>(xxx) yyy-zzzz</td>
</tr>
<tr>
<td scope="row" class="srb">Website: </td>
<td><a href="http://xyz.edu" target="_blank">http://www.xyz.edu</a>
</td>
</tr>
<tr>
<td scope="row" class="srb">Type: </td>
<td>4-year, Private for-profit</td>
</tr>
<tr>
<td scope="row" class="srb">Awards offered: </td>
<td>Less than one year certificate<br>One but less than two years certificate<br>Associate's degree<br>Bachelor's
degree
</td>
</tr>
<tr>
<td scope="row" class="srb">Campus setting: </td>
<td>City: Small</td>
</tr>
<tr>
<td scope="row" class="srb">Related Institutions:</td>
<td><a href="?q=xyz">xyz-New York</a>
(Parent):
<ul>
<li style="list-style:circle">Berkeley College - Westchester Campus</li>
</ul>
</td>
</tr>
</tbody>
</table>
</div>
</html>
ここで、前の要素の text() プロパティに "Website: " が含まれている場合に URL を抽出したいと考えています。私はスクレイピー0.14でpython 2.xを使用しています。などの個々の要素を使用してデータを抽出できました
item['Header_Type']= site.select('div/table[@class="layouttab"]/tr[3]/td[2]/text()').extract()
しかし、web サイトのパラメーターがなく、tr[3] が上にシフトし、web サイト要素に「タイプ」があり、タイプに「提供される賞」がある場合、このアプローチは失敗します。
xPathに次のような特定のコマンドがありますか?
'div/table[@class="layouttab"]/tr/td[2] {if td[1] has text = "Website"}
前もって感謝します。