Programing Language/Python

[나도 코딩] 웹 스크래핑 6. User Agent

Data-SSung 2020. 11. 9. 17:44
반응형

웹 스크래핑

User Agent


이 글은 나도코딩님의 [파이썬 코딩 무료 강의 (활용편 3)]을 보고 공부한 내용입니다. 

 

1. User Agent 이해하기

User Agent란?

  • 웹 사이트에서는 접근하는 사용자의 정보

  • 기기/브라우저별로 지원정보가 나와있어서 어떤 기기를 이용해서 접근하는지를 알 수 있음

    • 스마트 폰에서 접속 -> 모바일 용 접속

    • 웹에서 홈페이지 접속 -> 웹사이트 용 접속

 

웹 스크래핑을 할 때, 접근이 불가능한 경우가 발생하는 이유?

  • 접속하는 브라우저에 따라서 유저 에이전트가 다름

    • ex) 같은 컴퓨터 내에서도 크롬, 인터넷 익스플로러의 유저 에이전트가 다름

  • 컴퓨터가 웹스크래핑을 할 때, 홈페이지 입장에서 많은 정보를 빼갈 수도 있기 때문에 접속을 차단할 수 있음

  • 서버 입장에서 유저 에이전씨를 확인해서 정보를 제한적으로 보여줄 수도 있음

  • User Agent를 활용해서 사람 or 컴퓨터가 무작위로 접속하는 것인지를 판단함

 

접근 권한이 있는 경우 접근 권한이 없는 경우
  • res.raise_for_statues()
    • 에러가 발생하지 않음
  • html 파일로 스크래핑 자료가 잘 저장됨
  •  res.raise_for_statues()
    • 에러가 발생하여 파일이 저장되지 않음
  • 파일이 저장이 되어도 스크래핑된 자료가 깨져있음 

                                                            => User Agent를 활용해서 해결할 수 있음

 

2. User Agent 설정하기

2.1 접근 권한이 있는 경우 웹 스크래핑하기

코드

import requests
res = reques.get("https://data-ssung.tistory.com")
res.raise_for_status()
with open("data-ssung.html", "w", encoding="utf8") as f:
	f.write(res.text)

웹 스크래핑 결과 저장된 html

 

2.2 접근 권한이 없는 경우 웹 스크래핑하기

코드

import requests
url = "https://data-ssung.tistory.com"
headers = {"User-Agent" : "My User-Agent 값 넣기"}
res = requests.get(url, headers=headers)
res.raise_for_status()
with open("data-ssung.html", "w", encoding="utf8") as f:
	f.write(res.text)	

 

이 글은 나도코딩님의 [파이썬 코딩 무료 강의 (활용편 3)]을 보고 공부한 내용입니다. 

반응형