반응형
먼저 셀레니움을 설치 해 주자.
! pip install selenium
아래와 같은 코드들이 나오면서 설치가 완료 될 것이다.
아래 코드를 입력하여 에러가 나지 않으면 설치 및 불러오기가 완료 된 것이다.
from selenium import webdriver
드라이버를 선언하고 실행 해 보자. 홈페이지가 실행되면 잘 되는 것이다.
(최신 버전은 크롬 드라이버를 따로 받지 않아도 가능하다.)
driver = webdriver.Chrome();
💨 특정 홈페이지에 접속 해 보자.
url = 'https://www.naver.com/'
driver.get(url) # URL 에 해당하는 홈페이지 접속
html = driver.page_source # html 정보 가져오기
print(html) #
driver.quit() # driver 종료
다음과 같이 html 코드를 가지고 왔다면 잘 된 것이다.
셀레니움으로 가져온 정보를 해석하기 위해 BeautifulSoup 라는 라이브러리를 사용 할 것이다.
그 전에 연습용 html을 하나 만들어 사용 해 보자.
html = '''
<html>
<head>
</head>
<body>
<h1>시장</h1>
<div class='sale'>
<p id='fruits1' class='fruits'>
<span class='name'>사과</span>
<span class='price'>3000원</span>
<span class='inventory'>100개</span>
<span class='store'>allempty 상회</span>
<a href='https://allemptysheep.tistory.com/'>홈페이지</a>
</p>
</div>
<div class='prepare'>
<p id='fruits2' class='fruits'>
<span class='name'>딸기</span>
</p>
</div>
</body>
</html>
'''
💨 태그를 찾아보자.
from bs4 import BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
tags_span = soup.select('span') # span 태그 찾기
print(tags_span)
tags_p = soup.select('p') # p 태그 찾기
print(tags_p)
💨 id, class, 태그명 + class 로도 찾을 수 있다.
ids_fruits1 = soup.select('#fruits1') # id 로 태그 찾기
class_price = soup.select('.price') # class 로 태그 찾기
tags_span_class_price = soup.select('span.price') # 태그명, class 로 태그 찾기
print(ids_fruits1)
print(class_price)
print(tags_span_class_price)
그럼 과일 이름 '사과', '딸기' 의 이름 값을 가지고 있는 태그를 가지고 와보자.
tags_name = soup.select('span.name')
print(tags_name)
'사과' 의 태그만 가지고 오고 싶다면 태그 구조를 이용하여 가지고 올 수 있다.
tags_apple = soup.select('#fruits1 > span.name') # id fruits1 안의 span 태그의 class name
print(tags_apple)
다음과 같이도 찾을 수 있다.
tags_apple2 = soup.select('div.sale > #fruits1 > span.name')
tags_apple3 = soup.select('div.sale span.name')
print(tags_apple2)
💨 태그 여러개를 찾아서 하나씩 출력 해 보자.
fruits = soup.select('span.name')
for fruit in fruits:
print(fruit)
💨 태그의 텍스트, 속성을 가져와 보자.
tags = soup.select('a')
tag = tags[0]
print(tag)
content = tag.text
print(content)
link = tag['href']
print(link)
'Python' 카테고리의 다른 글
[Python] 데이터를 크롤링하여 엑셀로 저장 해 보자. (0) | 2024.08.01 |
---|---|
[Python] 실제 사이트 크롤링을 해보자. (0) | 2024.07.31 |
[Python] Pandas 사용 방법 (0) | 2024.07.30 |
[Python] 파이썬 기본 입력과 출력, print 함수, 인덱스 계산, for 문 등. (0) | 2024.07.30 |
[Python] 주피터 노트북 사용법 (0) | 2024.07.30 |