Python/[강의] 파이썬입문과 크롤링기초

실전 크롤링과 크롤링 기술팁

spring_sunshine 2022. 9. 11. 13:48

1. 크롬 브라우저 활용하기

  • 크롬 개발자 모드 (윈도우)
    • Ctrl + Shift + i 
    • F12
  • 마우스로 원하는 부분 클릭

2. 추출한 것에서 또 추출하기

  • find()로 더 크게 감싸는 HTML 태그로 추출하고
  • 다시 추출된 데이터에서 find_all()로 원하는 부분을 추출
  • 추출된 데이터는 객체(object) 이다.

import requests
from bs4 import BeautifulSoup
res = requests.get('https://davelee-fun.github.io/blog/crawl_test')
soup = BeautifulSoup(res.content,'html.parser')

section = soup.find('ul',id='hobby_course_list')
titles = section.find_all('li','course')
for title in titles:
    print(title.get_text())

3. 파이썬 문자열 함수와 함께 쓰기 (데이터 전처리)

  • strip() 함수: 문자열 앞뒤 공백 또는 특정 문자 삭제
  • split() 함수: 문자열 내부 공백 또는 특정 문자를 구분해서 리스트로 만듦
section = soup.find('ul',id='dev_course_list')
titles = section.find_all('li','course')
for index,title in enumerate(titles):
    print(str(index+1)+'.'+title.get_text().split('-')[1].split('[')[0].strip())

4. 여러 페이지를 한번에 크롤링하기

문자열 처리 활용하기

import requests
from bs4 import BeautifulSoup

for page_num in range(10):
	if page_num == 0: 
    	res = requests.get('https://davelee-fun.github.io/')
	else:
    	res = requests.get('https://davelee-fun.github.io/page' + str(page_num+1))
        
    soup = BeautifulSoup(res.content, 'html.parser')
    data = soup.select('h4.card-text')
    for item in data:
    	print(item.get_text().strip())