크롤링 안되는 경우 - keulolling andoeneun gyeong-u

크롤링 안되는 경우 - keulolling andoeneun gyeong-u

크롤링 할 때 다른 주소는 requests.get(url) 을 받으면 페이지 소스를 잘 받아오는데,

아무 반응이 없거나 위에 그림 처럼 오류가 발생하는 페이지가 있다.

이 때, requests.get(url).text 를 이용해서 내용을 확인해 볼 수 있다.


improt requests

url = "크롤링할 사이트주소"

html = requests.get(url).text

html


크롤링 안되는 경우 - keulolling andoeneun gyeong-u

사이트에서 거부당했음을 확인 할 수 있다. 서버에서 봇으로 인지하고 차단한 경우이다. 

불법적인 크롤링을 막기 위한 조치로 해당 사이트에서 크롤링 한 데이터를 상업적인 목적으로 활용할 생각이라면, 여기서 그만두는 것을 추천한다.

서버에서 봇인지 사람인지 사용자를 구분해주는 값을 담는 그릇이 있다.

headers 라는 그릇에 {'User-Agent':'유저정보'}의 형태로 담겨있는데, 이 값을 사람인척 변경해주면 된다.

'유저정보' 에 들어가 값은 아래 사이트에 들어가서.

http://www.useragentstring.com/

UserAgentString.com - unknown version

www.useragentstring.com

네모 안에 값 전체를 복붙하면 된다.

크롤링 안되는 경우 - keulolling andoeneun gyeong-u

import requests

url = "크롤링할 사이트"

header = {'User-gent' : '유저정보'}
requests.get(url, headers = header)
html = requests.get(url, headers = header).text
html

거부당할 때와는 다른 결과가 나온다면 성공!

이후 코딩에서 soup는 이렇게 가져오면 좋다.

import requests
from bs4 import BeautifulSoup as bs
import re
url = '크롤링 사이트'
header = {'User-Agent' : '유저정보'}
html = requests.get(url, headers = header)
soup = bs(html.content)
soup