크롤링

    네이버 뉴스 댓글 크롤링 및 여론 조사  (22.09.13.최신)

    네이버 뉴스 댓글 크롤링 및 여론 조사 (22.09.13.최신)

    안녕하세요! 개발자 북치기입니다👍 네이버 뉴스 댓글 크롤링하는 방법에 대해 설명하도록 하겠습니다. 원래 제 글에 있었는데, 코랩에 설정이 잘못돼있어서 많은 분들이 신청만 해주시고 못봤다는걸 알게되었습니다. 굳이 코랩에 가지않아도 여기서 참고할 수 있도록 작성해보도록 하겠습니다. 제가 이 프로그램을 만들게 된 이유는 빅데이터를 이용한 '여론 조사'의 목적이었습니다. 어떤 키워드를 검색하였을 때, 뉴스 본문보다는 댓글이 국민의 여론을 나타낸다고 생각했기 때문입니다. 현재 만들어져있는 빅카인즈같은 사이트를 보면 본문을 분석해주는 것 뿐이라서요. 로직은 이렇습니다. 어떤 키워드를 입력하면, 네이버 뉴스 중 네이버 댓글이 달리는 뉴스만 필터링하여 크롤링한다. 그 뉴스들 내에 있는 댓글을 싹 크롤링한다. 댓글들을 ..

    textarea 내용 크롤링 잘 안될 때

    textarea 내용 크롤링 잘 안될 때

    셀레니움으로 크롤링 할 때 textarea 내용이 안따져서 찾아보니 js로 value 값을 받아와야한다. 이렇게 있다고 치면 보통은 xpath로 받아서 해야하는데 클릭이 안된다. driver.find_element_by_xpath('//*[@id="content"]').click() ​ 개발자도구에서 해보니 value값으로 선택되길래 이렇게 해결! driver.execute_script("document.getElementsByTagName('textarea')[0].value=\'" + 변수명 + "\'") 또는 driver.execute_script("document.getElementsById('content').value=\'" + 변수명 + "\'") ​

    셀레니움 스크롤 끝까지 내리기

    #셀레니움 스크롤 끝까지 내려도 계속 내리는 페이지라면 prev_height = browser.excute_script("return document. body.scrollHeight") import time while True: #첫번째로 스크롤 내리기 browser.excute_script("window.scrollTo(0,document.body.scrollHeight)") #시간대기 time.sleep(2) #현재높이 저장 current_height = browser.excute_script("return document. body.scrollHeight") #현재높이와 끝의 높이가 끝이면 탈출 if current_height == prev_height: break #업데이트해줘서 끝낼 수 있도록..

    크롤링 영어 나올 때 한글로 바꾸기

    맞게 쳤는데도 잘 안될 때 이렇게 페이지를 다운받아서 켜보면 내가 보는 창과 다른 경우가 있다. with open('movie.html', 'w', encoding="utf-8-sig") as f: f.write(soup.prettify()) #html문서 예쁘게 이는 내가 접속하는 페이지에서, 헤더가 다르거나, 언어가 다르면 다른 방식으로 뿌려주기 때문이다. 따라서 내가 사용하고 있는 브라우저와 언어를 맞춰줘야한다. #한글페이지 요청 headers = { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Whale/2.9.116.15 Safari..

    셀레니움 크롤링 값이 안나올 때(text)(frame)

    셀레니움 크롤링 값이 안나올 때(text)(frame)

    셀레니움에서 크롤링 코드 맞게쳤는데도 값이 안나오면 프레임이 있는지 확인해보고 바꿔줘야함. 셀레니움이 참 멍청한건지 프레임이 다르면 값을 가져오질 못하더라고... 그래서 프레임을 변경해줘야한다. # 메인프레임변경해주기 driver.switch_to.frame('coinfo_cp') 예시) 네이버 금융 재무재표 가져올 때 ​ 기존 코드 from bs4 import BeautifulSoup from selenium import webdriver driver = webdriver.Chrome('C:\chromedriver99.exe') url = 'https://finance.naver.com/item/coinfo.naver?code=000660' driver.get(url) # 유보율 xpath ubo = ..