크롤링
request 라이브러리, BeautifulSoup 라이브러리
화이팅하자9
2023. 10. 19. 14:16
request 라이브러리
- 접근할 웹 페이지의 데이터를 요청/응답 받기 위한 라이브러리
- import requests as req <- 라이브러리 선언하기 위해 만든것
- 예시=req.get(url) <- 라이브러리를 이용해서 웹 페이지 요청
- 예시.text <- 웹 페이지 확인하기
HTTP상태코드 <- url
성공 : 200
클라이언트 오류 : 400
서버 오류 : 500
BeautifulSoup 라이브러리
- 웹 페이지에서 원하는 데이터 추출하기 쉽게 Python 객체로 변환 해주는 라이브러리
- from bs4 import BeautifulSoup as bs
- bs(변환할 데이터,변환방식)<- 문자열로 된 웹 페이지 데이터를 객체로 변환
bs(변환할 데이터,변환방식)
변환할 데이터 : 응답받은 웹 페이지 데이터
변환 방식 : Python객체로 변환 lxml > html.parser > html5lib <-- 속도 측면에서 lxml이 젤 빠름
html = bs(res.text,'lxml')
html
주소를 불러올때 에러가 뜨는경우가 있을때
예시 = {
'user-agent' : 'Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
}
예시1 = req.get(불러올 url변수,예시의이름을 정할 변수 = 예시)
예시1
naver_news_url='https://news.naver.com/main/main.naver?mode=LSD&mid=shm&sid1=103'
header_option = {
'user-agent' : 'Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
}
res = req.get(naver_news_url,headers = header_option)
res
원하는 데이터 추출하기
1.select : 전체를 가져온다.
2.select_one : 원하는 데이터를 가져온다.
3.select_one(~).text : 선택자에 해당하는 하나의 요소의 내용을 반환하는 함수
4.select('title')[0].text : 선택자에 해당하는 모든 요소를 반환하는 함수