파이썬에서 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 사용 코드임.
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. 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"))
1. parent를 통해 가능
print(one.parent)
위처럼 . parent를 활용하면 부모 태그를 알 수 있음.