바뀜

둘러보기로 가기 검색하러 가기
1,355 바이트 추가됨 ,  2021년 4월 7일 (수) 19:09
편집 요약 없음
14번째 줄: 14번째 줄:  
!방법
 
!방법
 
|-
 
|-
|사전준비
+
|준비
 
|작동에 필요한 모듈을 불러오고 변수들을 지정한다.
 
|작동에 필요한 모듈을 불러오고 변수들을 지정한다.
    
# 필요한 모듈을 불러온다.
 
# 필요한 모듈을 불러온다.
 
# 로그인에 필요한 정보들을 어떤 변수로 전달할지 입력한다.
 
# 로그인에 필요한 정보들을 어떤 변수로 전달할지 입력한다.
# <blockquote>어떤 변수에 전달해야 할지는 개발자도구의 Network > doc 탭에서 정보의 이동을 보아야 한다.</blockquote>
+
#:어떤 변수에 전달해야 할지는 개발자도구의 Network > doc 탭에서 정보의 이동을 보아야 한다.
 
# 요청할 주소를 지정한다.(이 또한 개발자도구로 데이터이동을 살펴 찾는다.)
 
# 요청할 주소를 지정한다.(이 또한 개발자도구로 데이터이동을 살펴 찾는다.)
 
|<syntaxhighlight lang="python">
 
|<syntaxhighlight lang="python">
30번째 줄: 30번째 줄:  
              
 
              
 
login_url = "http://주소./....php"  # 로그인 요청을 보내는 경로를 지정한다.
 
login_url = "http://주소./....php"  # 로그인 요청을 보내는 경로를 지정한다.
 +
</syntaxhighlight>
 +
|-
 +
|로그인요청
 +
|세션을 시작하고 페이지에 요청을 보낸다. 위 정보들을 토대로 진행한다.
 +
|<syntaxhighlight lang="python">
 +
session = requests.session()  # 세션을 시작한다.
 +
res = session.post(login_url, data=login_info)  # 위에서 작성한 내용을 Post 방식으로 요청하고 응답받는다.
 +
res.raise_for_statue()  # 오류가 발생하면 에러를 반환하게 한다.
 +
 +
</syntaxhighlight>
 +
|-
 +
|세션이용
 +
|위에서 로그인된 상태를 이용하여 필요한 정보를 얻는다.
 +
|<syntaxhighlight lang="python">
 +
url = "http://주소"
 +
res = session.get(url)  # url로 get 요청을 보낸 후 응답을 받는다.
 +
res.raise_for_status()  # 오류가 발생하면 에러를 일으킨다.
 +
 +
soup = BeautifulSoup(res.text, "html.parser")  # 필요에 따라 페이지를 분석한다.
 
</syntaxhighlight>
 
</syntaxhighlight>
 
|}
 
|}
   −
=== 사전준비 ===
+
= 한 단계 더 나아가기 =
<syntaxhighlight lang="python">
+
최근엔 자바스크립트 등으로 로그인을 처리해서 실제 웹브라우저를 사용해야만 로그인되는 경우가 많다. 자바스크립트로 데이터를 가져오는 경우, request모듈 등으로 데이터를 추출할 수 없다.
    +
이처럼 HTML외의 기능으로 정보를 불러오는 경우, 웹브라우저를 이용해야 하는데, 다행히 웹브라우저를 조작하는 방법이 마련되어 있다.
   −
session = requests.session()  # 세션을 시작한다.
+
=== 준비물 ===
 
+
Selenium : 웹 어플리케이션 테스트를 자동화 할 때 사용. 자동으로 URL을 열거나 클릭, 스크롤, 문자입력 등의 행동을 자동화할 수 있다.
</syntaxhighlight>
   
[[분류:웹 스크래핑]]
 
[[분류:웹 스크래핑]]
익명 사용자

둘러보기 메뉴