찾다

 >  Q&A  >  본문

Python 구현: 웹 사이트에 있는 모든 XPath의 트리 구조를 얻는 방법은 무엇입니까?

방법 1

Python을 사용하여 웹 사이트(https://startpagina.nl)에서 모든 xpath의 계층 트리를 얻으려고 시도하는 동안 먼저 다음을 사용하여 분기의 xpath를 얻으려고 했습니다. /html/body:

으아아아

@Prophet의 답변을 바탕으로 웹사이트의 모든 요소 목록이 생성됩니다. 그러나 나는 이러한 요소의 xpath를 얻는 방법이나 트리 구조로 정렬하는 방법을 찾지 못했습니다.

대신

/html/body/div[6] 옵션은 길이가 1인 트리를 생성합니다.

방법 2

@Micheal Kay의 답변을 바탕으로 다음 Python 코드를 사용하여 "xml 탐색"을 시도했습니다.

으아아아

그러나 개별 요소의 xpath를 얻는 방법을 찾지 못했습니다.

질문

그래서 묻고 싶습니다:

Python을 사용하여 웹 사이트의 모든 xpath 트리를 얻는 방법은 무엇입니까? (트리가 순환적인지 궁금합니다. 트리를 얻는 방법을 알아낸 후에는 알 수 있기를 바랍니다.)

예상 출력

HTML 수동 검색 기준: 나는 출력이 다음과 같기를 원합니다:

으아아아

이것은 트리 목록의 예입니다.

P粉155832941P粉155832941306일 전395

모든 응답(1)나는 대답할 것이다

  • P粉127901279

    P粉1279012792024-02-22 13:34:15

    하나 이상의 요소를 선택하는 XPath의 총 수는 무한합니다(예: /a/b/../b/../b/../b 这样的路径),但是如果您限制将自己添加到 /a[i]/b[j]/c[k] 형식의 경로가 포함되며, 경로 수는 요소 수와 같고 XPath의 "트리"는 원래 XML 트리와 동형입니다.

    /a/b/c/a/b/d과 같이 숫자 조건자 없이 다른 경로를 원하는 경우 가장 쉬운 방법은 아마도 XML 문서를 반복하고 각 요소에 대한 경로(이 형식)를 가져와 중복을 제거하는 것입니다. 단순한 경로 목록 대신 트리 구조를 원하는 경우 중첩된 맵/사전을 사용하여 빌드하세요.

    불평/html/body/ 的原因是合法的 XPath 表达式不能包含尾随 /.

    회신하다
    0
  • 취소회신하다