저는 파이썬으로 Google 애플리케이션 엔진 프로젝트를 작성하고 있습니다. 은행 지점을 폐업하고 그들로부터 환율을 받아야합니다. XPath. 특정 형제 구하기
HTML의 예
:<tr>
<td width="2"><img src="./images/zero.gif" width="2" height="2" border="0" /></td>
<td width="41" class="curvalsh" align="left" valign="middle"><font color="#DC241F">USD</font></td>
<td width="41" class="curvalsh" align="right" valign="middle"><b> 15.20 </b></td>
<td width="4" align="left" valign="middle"><img src="./images/zero.gif" width="2" height="20" border="0" hspace="1"></td>
<td width="41" class="curvalsh" align="right" valign="middle"><b> 16.00 </b></td>
<td width="4" align="left" valign="middle"><img src="./images/zero.gif" width="2" height="20" border="0" hspace="1"></td>
<td width="41" class="curvalsh" align="right" valign="middle"> - </td>
<td width="2" align="left" valign="middle"><img src="./images/zero.gif" width="2" height="20" border="0" hspace="1"></td>
</tr>
내가 (15.20과 16.00로 태그) 태그를 포함하는 "USD"텍스트 후에 텍스트 다음 두 태그를 얻을 필요가있다. 난 이미 했어 무엇
은 다음과 같습니다
xpath = "//tr/td[text()='USD']/following-sibling::td/text()"
그러나 이것은 아무것도 반환하지 않으며 이것은 내가 얻을 지정해야하기 때문에 내가 필요 정확히 아닌 2 개 태그 태그 다음 텍스트를 포함 "USD"는 텍스트가 포함되지 않은 태그이기도합니다.
는 편집 : 나는이 같은 노력했습니다
는 여전히 아무것도를 검색 한 텍스트에 도착하기 전에 td
안에 다른 태그 그래서 당신이 중 하나를 검색 할 수 있다는 것을
xpath = "//tr/td[text()='USD']/following-sibling::td[matches(text(),'(^|\W)[0-9]+.[0-9]+($|\W)','i')]/text()"
이 나와 함께 작동 , 감사! 등의 내부 태그를 무시할 수 있습니다. 일종의 보편적 인 xpath 표현식을 작성하는 것과 같습니다. 문제는 그 같은 약 30 사이트를 스크랩해야하므로 각각의 xpath 표현을 별도로 작성하지 않아야한다는 것입니다. – Elena
은'/'모든 태그와 함께 또는'/'사이에 태그를 건너 뛰고, 어떤 태그에도'*'를 사용할 수 있으며, 다른 마법은 사용할 수 없습니다 ... –