lxml로 html을 조작하는 것이 재미있었습니다. 이제는 필자의 필요에 맞는 특정 요소를 찾은 후에 실제 파일을 조작하고 싶습니다. 요소의 소스를 검색 할 수 있는지 알고 싶습니다.lxml을 사용하여 html 문서에서 파싱 된 요소의 원본 인 실제 줄을 볼 수 있습니까
나는 내 요소의 방법으로 sourceline을보고 나서 내 의자에서 위아래로 뛰어 올랐지 만 그것은 내가 원하는 것을 내게주지 않았다.
some_element.sourceline
필자와 같이, 소스는 htm 소스가 목록 파일 일 때만 사용할 수 있으므로 줄 번호를 얻을 수 있습니다. 내가 더 잘 나는 명확하게하기 위해
theTree=html.fromstring(open(myFileRef).read())
the_elements=[e for e in theTree.iter()]
으로 내 요소를 생성하는 것이 추가
, 나는 some_element.sourceline에 대한 값으로 없음을 받고 없습니다입니다 - 내 트리의 모든 27,000 요소에 대해이 테스트
한 가지 내가 상상하고있는 것은 HTML 소스를 표현식에서 사용하여 문서의 특정 위치를 찾거나 뭔가를 잘라내는 것입니다. 텍스트가 반드시 고유하지 않기 때문에 요소의 텍스트를 신뢰할 수 없습니다.
게시되었지만 중단 된 솔루션은 소스 리를 사용하는 것이었지만 목록으로 파일을 읽은 후에도 소스 라 인에 대해 없음 이외의 값을 얻을 수 없었습니다. 누군가가 sourceline을 사용하는 예제를 가지고 있는지 다른 질문을 게시 할 것입니다.
html.tostring (myelement)은 적어도 자동으로 인코딩을 변환하기 때문에 그냥 버렸습니다. 예 : HTML 소스 분명히
<b> KEY 1A. REGIONAL PRODUCTION <br> </b>
html.tostring(the_element,method='html')
내가 원래 그대로의 소스를 받고 있지 않다의
싹둑.
'<b> KEY 1A.    REGIONAL PRODUCTION <br></b>'
'tree.tounicode (element)'메소드를 사용하지 않는 이유는 무엇입니까? –
제안 해 주셔서 감사합니다. 내가 찾았지 만 내장 된 도움말에 따라 미리 파싱 된 요소가 있기 때문에 실제 원본을주지 않을 것이며 – PyNEwbie
sourceline을 호출하면 분명히 줄이 생깁니다. –