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

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

erin del님의 프로필 이미지
erin del

작성한 질문수

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

질문드립니다

작성

·

200

1

import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook
keyword = input("검색어를 입력하세요")
lastpage = input("마지막 페이지 번호를 입력해 주세요")
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={i}")
    html = response.text

 

    soup = BeautifulSoup(html, 'html.parser')
    links = soup.select(".news_tit")
    wb = Workbook()
    ws1 = wb.active
    ws1.title = "연습"
    ws1.append(["제목", "링크"])
    print(links)
    for link in links:
        title = link.text
        url = link.attrs['href']
        print(title, url)
        ws1.append([title, url])
    pageNum = pageNum + 1
wb.save(filename='연습.xlsx')
 
네이버 기사 제목과 url 수집한 걸 엑셀에 옮겨보려고 합니다. 터미널에서는 마지막 페이지 번호 입력를 4로 했다고 하면 총 40개의 제목과 링크가 나타나는데 엑셀에는 옮겨지기는 하는데 10개의 기사 제목, 링크만 옮겨집니다. 어떻게 수정해주어야 할까요?

답변 1

1

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

wb, ws를 선언하는 부분을

첫번째 for문 밖으로 빼내셔야 합니다.

아니면 for문 돌때마다 계속 새로운 wb와 ws를 만들게 돼요!

 

먼저 반복문을 상세히 학습하고 오십쇼!!

https://youtu.be/j58o7UU2kNs?list=PLNO7MWpu0eeVfqT9ehXWf9CdRALusjUsU

erin del님의 프로필 이미지
erin del

작성한 질문수

질문하기