- requests
- Python에서 간단하게 HTML 요청을 할 수 있는 라이브러리
- 웹에 request를 요청하고 응답된 결과를 반환한다.print(req) : 응답 상태 출력
print(req.text) : HTML DOM을 텍스트 형태로 가져옴req = requests.get(url) print(req.text)
- User-Agent
- 특정 웹페이지에서 비정상 접속을 제한할 수 있기 때문에 사용자 정보를 작성해야 한다.
- urllib.request
- requests와 동일한 기능import urllib.request as req data = req.urlopen(url).read().decode() # 디코드 soup = BeautifulSoup(data, 'html.parser')
- User-Agent
- 특정 웹페이지에서 비정상 접속을 제한할 수 있기 때문에 사용자 정보를 작성해야 한다.
- BeautifulSoup
- HTML 및 XML 파일에서 데이터를 가져오는 라이브러리
- JSON 을 가져오는 것은 불가능
- 가져왔을 때, 데이터를 BeautifulSoup 객체로 만든다.soup = BeautifulSoup(req.text, 'html.parser')
- find()
- 지정한 요소 중 가장 처음에 나오는 태그를 가져온다.
- 형식
find(태그이름, attrs={'속성1':'속성값1', ....})soup2.find('p', attrs={'id':'my'}).string soup2.find(id='my').string soup2.find(class='our').string # 특정 페이지 문서 읽기 # 특정 페이지 문서 읽기 # 특정 페이지 문서 읽기
- find_all()
- 지정한 조건에 부합하는 요소들을 전부 리스트 형태로 저장하여 반환한다.
- 형식
find_all(태그이름, attrs={'속성1':'속성값1', ....})soup2.find_all('p') # [<p>웹 문서 스크래핑</p>, # <p class="our" id="my">특정 페이지 문서 읽기</p>] soup2.find_all('p', attrs={'id':'my'}) # [<p class="our" id="my">특정 페이지 문서 읽기</p>]
- select_one()
- 지정한 요소 중 가장 처음에 나오는 태그를 가져온다.
- 형식
select_one(태그이름, id="속성값", class_="속성값")soup4.select_one('div') # 첫번째 div 태그만 출력
- select()
- 지정한 조건에 부합하는 요소들을 전부 리스트 형태로 저장하여 반환한다.
- 형식
select(태그이름, class_="속성값")print(soup4.select('div')) # 두개의 div 태그가 리스트 안에 저장된 형태로 반환 soup4.select_one('div', id='hello').select('a', class_='aa') # [<a class="aa" href="https://www.naver.com/">naver</a>, # <a class="aa" href="https://www.daum.net/">daum</a>]