2015-01-04 3 views
1

최근 웹 페이지에서 lxmlrequests을 사용하여 html 테이블을 구문 분석하려고했습니다.lxml 및 파이썬 요청을 사용하여 구문 분석

는 파이썬 코드는 다음과 같이 실행 :을 받고 이렇게

<TR> 
    <TD style="font-size: 11px;"><!-- <a href="/company-technical-details/<%=sr.getExchange()%>/<%=sr.getSymbol()%>/<%=sr.getName()%>" ><%= sr.getSymbol() %></a> --> 
        AMTEKINDIA   </TD> 
    <TD style="font-size: 11px; max-width: 135px;">AMTEK INDIA LIMITED</TD> 
    <TD>    nse   </TD> 
    <TD style="min-width: 60px; max-width: 60px;">02-01-2015</TD> 
    <TD>78</TD> 
    <TD>78.3</TD> 
    <TD>72.25</TD> 
    <TD>73.9</TD> 

그러나 없습니다

다음
>>> from lxml to html 
>>> import requests 
>>> page = requests.get('http://www.bigpaisa.com/candlestick-stock-screener-result/nse/bearish-evening-star-candlestick-pattern') 
>>> tree = html.fromstring(page.text)' 

나는 목록을 얻을 수 lxml.xpath() 기능을 사용하여 다음과 같은 반복적 인 데이터 블록을 구문 분석하고 싶습니다 오류 : 예 :

>>> symbol=tree.xpath('//TD[@style="font-size: 11px;"][@!-- [@a href="/company-t 
echnical-details/[@%=sr.getExchange()%]/[@%=sr.getSymbol()%]/[@%=sr.getName()%]" 
][@%= sr.getSymbol() %][@/a] --]/text()') 

Xpath 평가 오류 및

>>> prices=tree.xpath('//TD/text()') 

값이없는 반환 목록.

+1

'from lxml to html'은 (는) 유효한 Python이 아닙니다. 'lxml import html'에서''뜻? ' –

답변

2

관심있는 행은 인 <table> 안에 있습니다.

from lxml import html 

url = 'http://www.bigpaisa.com/candlestick-stock-screener-result/nse/bearish-%20evening-star-candlestick-pattern' 
doc = html.parse(url) 

# you can use XPath to select elements... 
rows = doc.xpath("//table[@id = 'sortable']/tbody/tr") 

# or, if you prefer, use CSS selectors instead... 
rows = doc.cssselect("table#sortable tbody tr") 

for tr in rows: 
    # do something with each tr, for example 
    tds = tr.cssselect("td") 
    print tds[4].text 

requests 모듈이 전혀 필요 없음을 유의하십시오.

+0

페이지가 경로 표현식에서 고려해야 할 기본 XHTML 네임 스페이스를 선언 한 것으로 보입니다 - 제가 실수가 아니라면? –

+0

'lxml.html' 파서가 아닌 것 같습니다. 나는 그 코드를 테스트했고 작동합니다. – Tomalak

+1

HTML 파서는 단순히 네임 스페이스를 무시합니다. [ "HTML 파서는 HTML 문서를 파싱하기위한 것이고, XHTML 문서의 경우 네임 스페이스를 인식하는 XML 파서를 사용하십시오."] (http://lxml.de/parsing.html#parsing-html). –