bs4를 활용한 웹 크롤링에서 html 의 클래스를 활용할 수 있다.
titles = soup.select(".api_txt_lines.total_tit")
위와 같이 쓰면 검색시에 나온 제목의 class 명을 가져온 것이다.
만약 여러개의 class를 가져와야 될 경우에는
titles = soup.select(".api_txt_lines.total_tit")
names = soup.select(".sub_txt.sub_name")
for result in zip(names,titles):
print(type(result))
print(result[0].text)
print(result[1].text)
print(result[1]['href'])
print()
위처럼 zip 함수를 활용할 수 있다.
zip 함수는 각각의 항목이 태그와 class 이름이 변동없이 규칙적인 경우 사용 가능하다
*이를 대비해서 꼭 여러개의 다양한 검색어를 테스트 크롤링해서 변칙적인 부분이 있는지 주의해야 함
만약 class이름이 다르거나 태그가 빠져있으면 위와 같은 방법으로 크롤링 할 경우
예) 판해자 : LG전자 전문판매자 홍길동
제품: 삼성 비스포크 냉장고 a타입
이처럼 상단의 내용과 하단의 내용 간에 섞이면서 크롤링 되는 불상사가 생길 수 있다
req = requests.get(url, headers=window_headers)
html = req.text
soup = BeautifulSoup(html, "html.parser")
# 첫번째
print(soup.h1)
print('////')
# 두번째
h1= soup.find('h1')
print(h1)
print('////')
# 세번째
h1_select = soup.select_one('h1')
print(h1_select)
print('////')
# 네번째
h1_class = soup.find(class_="logo_default")
print(h1_class)
상기와 같이 총 네가지 방법이 가능하다 (더 있을 수 있다)
1) 직접 가리키는 방법
2) find
3) select_one
4) 클래스 명 직접 작성이 있으며 결과는 모두 아래와 같이 동일하다
*클래스를 입력할때는 꼭 class_(언더바)를 입력해줘야 한다 id 일 경우는 필요 없음
파이썬 List Comprehension 문법 정리 (1) | 2023.02.02 |
---|---|
실습으로 끝장내는 파이썬 웹 크롤링(3) (0) | 2023.02.01 |
실습으로 끝장내는 파이썬 웹 크롤링(1) (0) | 2023.01.31 |
파이썬 환경 설정 (0) | 2023.01.31 |
실습으로 끝장내는 파이썬 웹 크롤링과 웹 페이지 자동화(feat. 얼리버드 수강 신청) (0) | 2023.01.30 |