Python
Python] 크롤링 - bs4 (Pycharm)
김코식
2022. 11. 2. 22:32
크롤링(스크래핑)
웹 페이지를 가져와 데이터를 추출하는 행위
header - 파이썬을 통해 Http 통신을 할 경우 모든 정보를 담기 어려울 때 헤더를 직접 지정
cookie - HTTP에서 사용자의 정보를 저장하는 데이터
코드
requests(url = url, headers = header , cookies,cookie)
%header와 cookie는 모든 사이트에서 사용하기 때문에 값을 조절하면 브라우저에서 보내는 정보처럼 보내는 등 가능
파이썬을 사용하여 크롤링하기
bs4 (beautifulsoup4) 설치
ctrl + alt +s
+ 클릭 > bs4 검색 후 패키지 설치
import requests
from bs4 import BeautifulSoup
header 코드 작성
header = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
a = requests.get('https://www.genie.co.kr/chart/top200',headers=header)
header 작성 후
b = BeautifulSoup(a.text, 'html.parser')
url에서 받을 정보 분석 코드
url 에서 필요한 정보 추출
1
2.
코드 복사 후
num = b.select_one('추출 코드')
안에 코드 입력
num = b.select_one('#body-content > div.newest-list > div > table > tbody > tr:nth-child(1) > td.info > a.title.ellipsis')
% select , select_one 차이점
select는 해당 정보가 리스트로 묶여나옴
select_one은 리스트 안의 값 추출
전체 코드
import requests
from bs4 import BeautifulSoup
header = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
a = requests.get('https://www.genie.co.kr/chart/top200',headers=header)
b = BeautifulSoup(a.text, 'html.parser')
num = b.select_one('#body-content > div.newest-list > div > table > tbody > tr:nth-child(1) > td.info > a.title.ellipsis')
print(num)
결과