[개인 메모] python3에서 웹페이지 스크래핑

스크래핑을 할 때의 주의점



페이지 소스 코드를 마우스 오른쪽 버튼으로 클릭하여 페이지 소스를 표시하는 대신


개발자 도구로 표시된 사람 사용


text 꺼내기


<dt>価格<span class="tax">(税込)</span></dt>
dt 태그에 span 태그가 포함된 것의 텍스트 꺼내려면
source = '<dt>価格<span class="tax">(税込)</span></dt>'
soup = BeautifulSoup(source, "html.parser")
soup.text

.text 지정하는 것으로 꺼낼 수 있다

공백 문자 삭제


<dt>
    価格
    <span class="tax">(税込)</span>
</dt>

같은 태그에 공백 문자가 있으면
def remove_whitespace(str):
    return ''.join(str.split())

source = '<dt>価格<span class="tax">(税込)</span></dt>'
soup = BeautifulSoup(source, "html.parser")
remove_whitespace(soup.text)

내가 꺼낼 수 있다.
strip() 라든지에서는 중앙에 있는 공백은 삭제할 수 없기 때문에, split() 로 공백 문자를 단락 문자로서.join 에서 결합됨

BeautifulSoup에서 find



특정 클래스를 찾고 싶다면



한 경우


soup.find(class_='hoge')

모두 검색하는 경우


soup.find_all(class_='hoge')

특정 ID를 찾고 싶다면



한 경우


soup.find(id='hoge')

모두 검색하는 경우


soup.find_all(id='hoge')

특정 태그를 찾고 싶다면



한 경우


soup.find('hoge')

모두 검색하는 경우


soup.find_all('hoge')

또한 이들은 여러 조건을 동시에 할 수 있습니다
soup.find('hoge',class_='fuga)

좋은 웹페이지 즐겨찾기