미해결
[2024 개정판] 이것이 진짜 크롤링이다 - 기본편
과제 답안을 보지않고 스스로 구글링해서 만든 웹 크롤링 프로그램(10페이지 단위) 코드입니다.
import requests
from bs4 import BeautifulSoup
import urllib # 입력받은 input을 url로 변환
def web_crawler(keyword_input, pages=1):
# headers
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
# input -> url 변환
keyword = urllib.parse.quote(keyword_input)
print("파이썬 문자열을 url 코드로 변환:", keyword)
base_url = "https://www.google.com/"
# 10페이지까지 크롤링
for page in range(pages):
start = page * 10
search_url = f"{base_url}/search?q={keyword}&hl=ko&gl=KR&ceid=KR%3Ako&start={start}"
print("\n검색어와 조합한 url:", search_url)
# soup을 이용한 웹 크롤링 작업(headers 매핑 중요!)
response = requests.get(search_url, headers=headers)
html = response.text
# 응답 상태 확인
if response.status_code == 200:
soup = BeautifulSoup(html, "html.parser")
# h3 제목 추출
titles = soup.find_all("h3")
for title in titles:
print(title.get_text())
else:
print("에러:", response.status_code)
web_crawler("크롤링 잘하고 싶다", 1)아무래도 구글은 무한스크롤 형식이라 페이지 별로 크롤링하기가 까다롭네요