[파이썬] beautifulsoup4 1장

0

파이썬에서 beautifulsoup4를 실행하기에 앞서 설치해야할 것이 두 가지가 있음.

터미널창에 가서 아래 두 가지를 설치할 것.

pip install beautifulsoup4
pip install lxml

beautifulsoup4 : 스크래핑을 위한 패키지
lxml : 구문분석을 위한 파서

import requests
from bs4 import BeautifulSoup

url = "원하는 url"
res = requests.get(url)
res.raise_for_status()

soup = BeautifulSoup(res.text, "lxml")
# -> 우리가 가져온 문서를 lxml 파서를 통해 bs 객체로 만든 것.

위의 코드가 기본적인 bs4 사용 코드임.

find 함수

soup.find("태그이름", "속성")

find 함수를 통해 원하는 부분을 가져올 수 있음

print(soup.find("a", attrs={"class" : "class이름"}))

이는 원하는 url의 a element 중 속성이 class = "class이름"인 것을 찾아달라는 의미임.

형제, 부모 태그 가지고 오기

one = soup.find("a", attrs={"class" : "class이름"})
two = one.next_sibling

1. 형제 태그

1. next_sibling 을 통해 다음 형제 태그를 알 수 있음.

간혹 next_sibling 을 했는데 아무 정보가 안 나오는 경우도 있는데, 이 경우에는 각 형제 태그 사이에 줄바꿈이 있어서 그런 경우이기에 next_sibling을 한 번 더 하면 됨.

two = one.next_sibling.next_sibling

두 번 하기 싫은 경우 find_next_sibling을 활용할 수 있음.
자신의 태그 이름을 활용하여 그와 관련된 형제정보만 가져오는 것.

two = one.find_next_sibling("a")

2. previous_sibling을 통해서는 이전 형제 태그를 알 수 있음.

사용방법은 next_sibling과 동일.

3. next_siblings를 통해 형제들을 가져올 수 있음

아래 코드는 one의 다음 형제들 중 태그 이름이 "a" 인 경우를 전부 출력하라는 의미.

print(one.find_next_siblings("a"))

2. 부모 태그

1. parent를 통해 가능

print(one.parent)

위처럼 . parent를 활용하면 부모 태그를 알 수 있음.

0개의 댓글