🖥️ IT, 컴퓨터/🐍 Python

[Python] 파이썬 BeautifulSoup 뷰티풀수프로 html 파싱해 원하는 부분 표로 만들기 :: 공차 매장명, 주소 추출

김 홍시 2024. 11. 17.
반응형

문제상황

 

공차 매장명, 주소를 추출하고 싶다.

 

해결방법

공차 사이트의 매장찾기 메뉴에서

매장명, 주소 정보가 있는 컨테이너를 선택한다.

 

이후 우클릭 > copy > copy element

 

 

복사한 것을 vscode 등에 붙여넣기

 

 

아래 html = "" 부분에 넣는다.

 

필자는 매장명을 '매장명'이라는 열로, 주소는 '주소'라는 열로 df 를 만들려고 한다. 

from bs4 import BeautifulSoup
import pandas as pd

# HTML 코드
html = """
<ul>								
    <li class="on">
        <a href="javascript:;" store="55837">
            <span class="store new">부산공항덕두점</span>
            <span class="address">부산광역시 강서구 공항로811번가길 7, 1층(대저2동)</span>
        </a>
    </li>
    <li>
        <a href="javascript:;" store="55765">
            <span class="store new">서귀포신시가지점</span>
            <span class="address">제주특별자치도 서귀포시 신서로 52번길 24, 1층(강정동)</span>
        </a>
    </li>
    <!-- 추가적인 항목들 -->
</ul>
"""

# BeautifulSoup을 사용하여 HTML 파싱
soup = BeautifulSoup(html, 'html.parser')

# 매장명과 주소를 저장할 리스트
stores = []
addresses = []

# 매장명과 주소 추출
for li in soup.find_all('li'):
    store = li.find('span', class_='store')
    address = li.find('span', class_='address')
    if store and address:
        stores.append(store.get_text())
        addresses.append(address.get_text())

# 데이터프레임 생성
df = pd.DataFrame({
    '매장명': stores,
    '주소': addresses
})

# 데이터프레임 출력
print(df)

 

반복문을 보면

class가 store인 것은 store 변수로, class가 address인 것은 address 변수로 저장한다.

이후 이를 반복하여 df로 넣는 방식

 

 

잘 추출되었다.

반응형

댓글