2017-12-31 12 views
0

Python의 lxml을 통한 XPath가 나를 서클에서 운영하고 있습니다. 올바른 XPath로 생각하는 데 불구하고 HTML 표에서 텍스트를 추출 할 수 없습니다. 크롬을 사용하여 XPath를 검사하고 추출한 다음 코드에서 사용합니다. 나는 마일리지를 추출하기 위해 노력하고있어Python XPath는 계속 빈 목록을 반환합니다.

<div id="vehicle-detail-model-specs-container"> 
<table id="vehicle-detail-model-specs" class="table table-striped vdp-feature-table"> 
    <!-- Price --> 
    <tr> 
       <td><strong>Price:</strong></td> 
        <td> 
          <strong id="vehicle-detail-price" itemprop="price">$ 2,210.00</strong>   </td> 
      </tr> 
        <!-- VIN --> 
    <tr><td><strong>VIN</strong></td><td>&nbsp;*0343</td></tr> 

    <!-- MILEAGE --> 
    <tr><td><strong>Mileage</strong></td><td>0&nbsp;mi</td></tr> 
</table> 

: 여기

페이지에서 직접 촬영 한 HTML 테이블입니다.

//*[@id="vehicle-detail-model-specs"]/tbody/tr[3]/td[2] 

그리고 내가 사용 파이썬 코드는 다음과 같습니다 : 내가 사용하고있어 XPath는 것입니다

page = requests.get(URL) 
tree = html.fromstring(page.content) 

mileage = tree.xpath('//*[@id="vehicle-detail-model-specs"]/tbody/tr[3]/td[2]') 
print mileage 

참고 : 나는 끝에 /text()를 추가하는 시도하고 난 아직 아무것도 다시 얻을 , 그냥 빈 목록 [].

내가 뭘 잘못하고 왜 위의 예제에서 테이블 값을 추출 할 수 있습니까?

+1

, 당신은 XPath는에서'tbody'를 생략 시도? – Amber

+0

https://stackoverflow.com/a/18241030/407651 – mzjn

+0

[XPath 쿼리 (HTML 테이블 스크래핑)가 파이어 버그에서만 작동하는 이유는 무엇입니까?] (https : // stackoverflow.com/questions/18241029/why-does-my-xpath-query-scraping-html-tables-only-work-in-firebug-but-not-the) – Andersson

답변

1

앰버는 지적했듯이 tbody 부분을 생략해야합니다. 테이블의 html 코드에 <tbody> 태그가 없을 때 xpath에 tbody을 사용합니다. 당신이 게시 된 HTML을 사용

, 나는 다음과 같은 XPath를 사용하여 주행 거리 값을 추출 할 수 있어요 :

그냥 호기심
tree.xpath('//*[@id="vehicle-detail-model-specs"]/tr[3]/td[2]')[0].text_content() 
관련 문제