파이썬 뉴스 기사 크롤링 하는법 - 아니 이게 진짜 된다고?

Поделиться
HTML-код
  • Опубликовано: 11 ноя 2024

Комментарии • 43

  • @chaehayoon6243
    @chaehayoon6243 9 месяцев назад +1

    감사합니다. 진짜 알아듣기 쉽게 강의하시는 것 같아요~!

  • @Jaicestar
    @Jaicestar 5 месяцев назад

    많은 도움이 되었습니다.

  • @roka98
    @roka98 3 года назад +1

    오늘도 좋은 영상 진심으로 감사드립니다.

  • @견종원
    @견종원 Год назад

    캬 잘보고 갑니다

  • @helloWorld-p5r
    @helloWorld-p5r 3 года назад +1

    올라오는 강의들 다 보고잇습니당!

    • @startcoding.official
      @startcoding.official  3 года назад +1

      오옷! 감사합니당!
      부족한 점은 없는 지요!!

    • @helloWorld-p5r
      @helloWorld-p5r 3 года назад

      @@startcoding.official 제가 부족한 것 빼고는 아직 없네요 :) 강의가 넘 좋아욥

  • @전명동
    @전명동 3 года назад +1

    영상강의 잘 보고 있습니다. 감사합니다.

    • @startcoding.official
      @startcoding.official  3 года назад

      감사합니다 전명동님~! 궁금하신 내용이 있다면 언제든 말씀해 주세요 :)

  • @nsumiing
    @nsumiing 3 года назад +1

    본 강의중에 가장 명쾌한 것 같아요! 감사히 잘 보고갑니다!

    • @startcoding.official
      @startcoding.official  3 года назад

      감사합니다 수민님!!
      앞으로도 쭉 함께 공부해요ㅎㅎ

  • @MM-ok1dr
    @MM-ok1dr 3 года назад +1

    잘보고있어요
    강의도 재밌구요 ㅎㅎㅎ

    • @startcoding.official
      @startcoding.official  3 года назад

      감사합니다~! MM님
      열공 할 수 있도록
      꾸준히 좋은 강의 많이 만들겠습니다 ^^

  • @healthboy3472
    @healthboy3472 3 года назад +1

    너무 감사합니다. 영상도 필요합니다.

    • @startcoding.official
      @startcoding.official  3 года назад

      구독자 이벤트는 아쉽게도 기한이 종료 되었습니다ㅠㅠ 강의 오픈 준비중인데 조만간 소식 전해 드리겠습니다!!

    • @healthboy3472
      @healthboy3472 3 года назад

      @@startcoding.official 형님 본문 크롤링이 필요합니다. 행님

  • @이집사-j1r
    @이집사-j1r 2 года назад +1

    대박이당

  • @moscos9965
    @moscos9965 2 года назад

    좋아요 누르고 시작하는 어려운 것을 쉽게 알려주는 스타트코딩님 현재는 작년보다 URL이 짧아졌네요.

  • @yhP-ve2ll
    @yhP-ve2ll Год назад +1

    안녕하세요 정말 잘 배우고 있습니다. 크롤링 한 해당 뉴스 기사제목을 단어 빈도수 대로 추출하는 법만 좀 알 수 있을까요? 유료 강의라면 어디에 있는지라도 좀 알려주시면 정말 감사하겠습니다

    • @startcoding.official
      @startcoding.official  Год назад

      안녕하세요!
      뉴스기사제목1
      뉴스기사제목2
      뉴스기사제목3
      제목 여러 개를 하나로 합친다음
      그 안에서 가장 많이 나온 단어를 추출하고 싶다는 말씀인가요??ㅎㅎ

    • @yhP-ve2ll
      @yhP-ve2ll Год назад

      @@startcoding.official 답글이 너무 늦었네요 죄송합니다 ㅜㅜ 예 맞습니다! 요즘 사이트에서 막아놓은건지 응용해서 하면 30개씩밖에 안 되더라고요..!

    • @startcoding.official
      @startcoding.official  Год назад

      kkj6369@nate.com 메일로 코드 보내주시면 제가 시간될때 확인해 보겠습니다 ㅎㅎ

  • @saturnalia-bu4rj
    @saturnalia-bu4rj 2 года назад

    인프런 강의에 관심 있습니다. 현재 네이버 뉴스에 다양한 언론사들이 있어서 해당 html 본문 태그들이 다른데 다른 언론사 뉴스의 본문까지 전부 크롤링 가능한가요?

    • @startcoding.official
      @startcoding.official  2 года назад

      네! ㅎㅎ 다양한 언론사 모두 네이버 뉴스에 등록이 되어있기에 네이버 뉴스만 크롤링하면 다른 언론사들도 다 가지고 올 수 있습니다!

    • @saturnalia-bu4rj
      @saturnalia-bu4rj 2 года назад

      @@startcoding.official 감사합니다. 하나만 더 질문드릴게요! 구글은 셀레니움으로만 크롤링이 가능한 것 같던데 구글 검색어 내용관련해서 크롤링 강의 예정 있으신가요? 구글은 일정 트래픽이 초과되니까 제 아이피를 막더라구요. 셀레니움으로 긁어도..

    • @startcoding.official
      @startcoding.official  2 года назад

      서버에서 아이피를 막는 것은 어쩔 수 없습니다... ㅠ 아이피를 여러개 써야하는데 번거롭죠.
      차단을 당하지 않을 만큼만 크롤링하는 것을 권장드립니다.

  • @startcoding.official
    @startcoding.official  Год назад

    웹브라우저에 보이는 뉴스 순서와
    파이썬으로 크롤링한 뉴스 순서는 조금 다를 수 있습니다.

    10번째 페이지부터 크롤링되지 않는 것은 방금 확인해본 결과
    해당 페이지 서버쪽에 크롤링 탐지 정책이 새로 생겼습니다.

    쉽게 말씀드리면 너무 빨리 크롤링해서 10페이지부터 막아버리는 겁니다.
    time.sleep(0.1)~ time.sleep(0.5) 까지 테스트 해본 결과
    time.sleep(0.5)초 정도 부여하니 정상적으로 작동 하였습니다.
    아래는 time.sleep(0.5)가 적용된 코드입니다.

    • @startcoding.official
      @startcoding.official  Год назад

      import requests
      from bs4 import BeautifulSoup
      import pyautogui
      import time
      keyword = pyautogui.prompt("검색어를 입력하세요")
      lastpage = pyautogui.prompt("마지막 페이지번호를 입력하세요")
      pageNum = 1
      # 10페이지 까지 가져와보자
      for i in range(1, int(lastpage)*10, 10):
      print(f"{pageNum}번째 페이지 입니다=================")
      print(i)
      response = requests.get(f"search.naver.com/search.naver?where=news&sm=tab_jum&query={keyword}&start={i}")
      print(response.url)
      html = response.text
      soup = BeautifulSoup(html, 'html.parser')
      links = soup.select('.news_tit') # 결과는 리스트
      for link in links:
      title = link.text # 태그 안에 있는 모든 글자
      url = link.attrs['href'] # href의 속성값
      print(title, url)
      pageNum = pageNum + 1
      time.sleep(0.5)

  • @startcoding.official
    @startcoding.official  2 года назад

    사이트가 업데이트되어 강의예제를 따라하기 힘들 수 있습니다!
    아래 최신 영상에서는 크롤링을 업데이트에 대한 걱정없이 학습하실 수 있을겁니다 :)
    최신 크롤링 유튜브 영상
    ruclips.net/video/Uf21RUo3KNc/видео.html

  • @jjoon0630
    @jjoon0630 2 года назад +1

    안녕하세요! lastpage 에 10을 곱하는 이유가 무엇인가요...?

    • @startcoding.official
      @startcoding.official  2 года назад +1

      range 함수의 사용법을 좀 더 공부해 보세요ㅎㅎ
      range(시작, 끝, 단계)입니다.
      단계가 10이니 lastpage * 10 으로 끝을 만들어 주는 거예요.

    • @jjoon0630
      @jjoon0630 2 года назад +1

      @@startcoding.official 우와 세상에 빠른 답변 감사합니다 ㅠㅠ 아~~ 생각해 보니 1,2,3 페이지를 각각 1,11,21로 표현하고 있으니, 사용자가 3페이지를 원하면 10을 곱하는게 맞겠군요! 어제는 졸려서 머리가 안돌아갔나봐요 ㅋㅋ
      그런데.. 왜 html에서는 직관적인 1,2,3페이지 대신 1,11,21같은 불편한..? 숫자를 사용하는건가요..?ㅠㅠ 비전공자라 아주 유아스러운 추가 질문 드려 봅니다 ㅠㅠ

    • @startcoding.official
      @startcoding.official  2 года назад +1

      @@jjoon0630 네이버 뉴스에서 서버 개발을 할 때 페이지 데이터를 1,2,3이 아닌 1,11,21을 사용했기 때문이에요ㅎㅎ
      다른 페이지들은 대부분 1,2,3으로 되어 있습니다. 네이버 뉴스가 조금 특이하다고 보시면 돼요.

    • @jjoon0630
      @jjoon0630 2 года назад +1

      @@startcoding.official 감사합니다! 앞으로도 많은 영상 부탁 드립니다!

  • @rajon7231
    @rajon7231 8 месяцев назад +1

    네이버 뉴스에 페이지 버튼이 삭제됐네요 ㅠㅠ

    • @startcoding.official
      @startcoding.official  8 месяцев назад +1

      예제 사이트가 업데이트 되는게 불편해서
      자체 크롤링 연습사이트를 만들었습니다.
      3월 18일에 업로드 되는
      완전 새로운 웹크롤링 강의를 기대해 주세요 :)

    • @rajon7231
      @rajon7231 8 месяцев назад

      @@startcoding.official 감사합니다

  • @모란이-v5g
    @모란이-v5g 2 года назад

    안녕하세요.
    아래에서 send_text 함수로 리스트에 있는 검색어로 텔레그램 메시지를 보내는걸 만들고 있는데
    왜 마지막 부동산 것만 메시지 수신이 될까요?
    queries = ["소녀시대","블랙핑크","부동산"]
    for query in queries:
    bot.sendMessage(chat_id = chat_id, text=f"{query}의 크롤링이 시작되었습니다.")
    old_text = []
    job = schedule.every(3).seconds.do(send_text)
    while True:
    schedule.run_pending()
    time.sleep(1)

  • @ERICKP-h5h
    @ERICKP-h5h Год назад

    신문사는 어떻게 스크래핑 할 수 있나요? .news_tit 안에 신문사 태그가 없어서 같이 스크래핑 못하는 것 같은데요!
    해결 방법을 도저히 모르겠네요!