python3 크롤링에서 오류는 없지만 html이 뜨지 않는 경우

조회수 3268회
import requests
from bs4 import BeautifulSoup

url = "https://upbit.com/service_center/notice"
result = requests.get(url =url)
bs_obj = BeautifulSoup(result.content, "html.parser")

print(bs_obj)

상단의 코드를 입력했을때 오류는 없지만 원하는는 html 이 나오지 않고 크롤링도 되지 않습니다. 사이트 자체가 이런식의 크롤링을 막아놓은 것 같다는 생각이 듭니다 ㅠ

이미지 <문제의 출력>

이럴때는 크롤링 코드를 어떻게 짜면 되나요 ㅠㅠ 초보입니다 ㅠㅠ 도와주세요..

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 여전히 오류라면.. 셀레니움 세팅은 잘 끝내셨나요? 아마도 셀레니움 세팅과정에서 오류가 생기셨을것 같은데요 셀레니움은 웹브라우져 자동화 도구라 사용할 브라우져와 패키지를 연결시켜줄 webdriver 세팅을 해주셔야 합니다. 이부분은 구글에 셀레니움 사용법 검색하면 많이 자세하게 나와있으니 참고하시면 될것같습니다... ohsangyun 2019.8.12 21:08

1 답변

  • 맞게 나오고 있는 겁니다

    print(bs_obj.text)
    

    을 해보시면 아시겠지만, 업비트를 처음 들어갔을때의 화면에 대한 이미지 페이지를 캡쳐를 해서, 보여주고 있습니다. 애초에 bs4는 서버에서 웹페이지에 대한 요청을 하고 html을 받아와서 우리에게 보여주는 것 밖에 못하는 스크린샷같은 녀석이라서요.

    만약 질문자님이 '잠시만 기다려주세요' 이후에 나오는 업비트 메인페이지를 크롤링 하려고 하는 거라면..

    셀레니움을 사용해서 크롤링 해보시기 바랍니다.

    import requests
    import time
    import urllib
    from selenium import webdriver
    from bs4 import BeautifulSoup
    
    #브라우저 설정
    binary=FirefoxBinary('C:/Program Files/Mozilla Firefox/firefox.exe')
    browser=webdriver.Firefox(executable_path='C:/Program Files/Mozilla Firefox/geckodriver.exe',firefox_binary=binary)
    
    url = "https://upbit.com/service_center/notice"
    browser.get(url)
    time.sleep(10)
    html = browser.page_source
    soup=BeautifulSoup(html, 'html.parser')
    print(soup.text)
    
    • 여전히 오류가 있어서 다시 한번 답변부탁드려도 될까요 ㅠㅠ 알 수 없는 사용자 2019.8.9 17:55
    • sdafsdfasdfasf 박진배 2019.8.13 12:49

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)