인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

강현명님의 프로필 이미지
강현명

작성한 질문수

[2024 개정판] 이것이 진짜 크롤링이다 - 기본편

질문드립니다^^

작성

·

157

0

아래 화면처럼 했는대

데이터를 가져오는 건 1,10,20,30 여기서 어떠한 부분이 잘못된것일까요?

 

import requests
from bs4 import BeautifulSoup
import pyautogui

keyword = pyautogui.prompt('검색어를 입력하세요')
lastpage = pyautogui.prompt('마지막 페이지 번호')
pageNum=1
for i in range(1, int(lastpage) * 10, 10) :
    print(f"{pageNum}페이지 ==============================")
    response = requests.get(f"https://search.naver.com/search.naver?sm=tab_hty.top&where=news&query={keyword}&start={lastpage}")
    html = response.text
    soup = BeautifulSoup(html,'html.parser')
    links = soup.select('.news_tit')
    for link in links :
        title = link.text
        url=link.attrs['href']
        print(title,url)
        pageNum = pageNum + 1

답변 1

1

스타트코딩님의 프로필 이미지
스타트코딩
지식공유자

잘 동작하는줄 알고 봤는데~

돌려보니까 이상한 점이 하나 있네요ㅎㅎ

 

마지막 줄에

pageNum = pageNum + 1 부분을 안쪽으로 들여쓰기 해주세요 ㅎㅎ

 

강현명님의 프로필 이미지
강현명
질문자

안쪽으로 들여쓰기한거와 안한게 차이가 있나요? 

스타트코딩님의 프로필 이미지
스타트코딩
지식공유자

지금 예제는 2중 for문으로 되어 있어요.

 

pageNum = pageNum + 1을

안쪽으로 들여쓰기를 하지않으면

 

1페이지를 크롤링 할때 

안쪽 for문으로 인해 pageNum 이 10이 증가해 버립니다. 

강현명님의 프로필 이미지
강현명

작성한 질문수

질문하기