Python에서 BeautifulSoup을 사용하여 테이블에서 데이터 추출
HTML 문서를 구문 분석할 때 테이블에서 데이터를 추출하는 기능은 일반적인 요구 사항입니다. 웹 스크래핑을 위한 인기 있는 Python 라이브러리인 BeautifulSoup은 HTML을 구문 분석하고 해당 콘텐츠에 액세스하는 강력한 방법을 제공합니다.
BeautifulSoup으로 테이블 구문 분석
BeautifulSoup으로 테이블을 구문 분석하면서 "NYC Parking Ticket Parser"의 예를 살펴보겠습니다. 이 페이지의 HTML 응답은 매우 복잡하며, 목표는 각 티켓에 대한 정보가 포함된 품목 테이블에서 데이터를 추출하는 것입니다.
이를 달성하려면 먼저 HTML 내에서 테이블을 식별해야 합니다. 고유한 클래스를 사용하는 응답:
<code class="python">table = soup.find("table", { "class" : "lineItemsTable" })</code>
테이블을 찾으면 행을 반복하여 데이터를 추출할 수 있습니다.
<code class="python">for row in table.findAll("tr"): cells = row.findAll("td") print cells</code>
그러나 이 접근 방식은 HTML만 제공합니다. 테이블의 각 행에 대한 요소입니다. 실제 텍스트 콘텐츠를 얻으려면 각 셀에서 텍스트를 추출해야 합니다.
<code class="python">data = [] for row in table.findAll("tr"): cols = row.findAll("td") cols = [ele.text.strip() for ele in cols] data.append([ele for ele in cols if ele])</code>
이 코드는 테이블 행을 반복하고, 셀에서 텍스트를 추출하고, 선행 또는 후행 공백을 제거합니다. 결과는 목록 목록이며, 각 내부 목록은 테이블의 행을 나타냅니다.
복잡성 처리
제공된 예에서 테이블의 마지막 행은 테이블 데이터의 일부가 아닌 결제 금액을 포함합니다. 이를 처리하기 위해 특정 요소 수 미만의 행을 필터링할 수 있습니다.
<code class="python">data = [row for row in data if len(row) >= 7]</code>
또한 각 행의 마지막 열에는 입력 텍스트 상자가 포함되어 있습니다. 입력 요소 앞의 텍스트를 추출하여 이를 처리할 수 있습니다.
<code class="python">data = [[col.split()[0] if col.find("input") else col for col in row] for row in data]</code>
결론
이러한 수정을 통해 광고 항목 테이블에서 데이터를 효과적으로 추출할 수 있습니다. Python에서 BeautifulSoup을 사용합니다. 특정 요구 사항에 맞게 코드를 조정하고 발생할 수 있는 추가 복잡성을 처리하는 것을 잊지 마세요.
위 내용은 Python에서 BeautifulSoup을 사용하여 HTML 테이블에서 데이터를 추출하는 방법, 특히 추가 행 및 입력 요소와 같은 복잡성을 처리할 수 있는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!