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 이 나오지 않고 크롤링도 되지 않습니다. 사이트 자체가 이런식의 크롤링을 막아놓은 것 같다는 생각이 듭니다 ㅠ
<문제의 출력>
이럴때는 크롤링 코드를 어떻게 짜면 되나요 ㅠㅠ 초보입니다 ㅠㅠ 도와주세요..
-
(•́ ✖ •̀)
알 수 없는 사용자
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)
댓글 입력