• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

질문드립니다

22.07.22 23:12 작성 조회수 163

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