• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

질문드립니다^^

21.11.25 21:15 작성 조회수 99

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 부분을 안쪽으로 들여쓰기 해주세요 ㅎㅎ

 

강현명님의 프로필

강현명

질문자

2021.11.29

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

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

 

pageNum = pageNum + 1을

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

 

1페이지를 크롤링 할때 

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