![[Python] requests, beautifulsoup(bs4) 모듈로 강의목록 웹 스크래핑](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9SPGD%2Fbtq8ZZ6gVBt%2FPxj0Vr0GlgW5p2zzt4WUQ1%2Fimg.png)
[Python] requests, beautifulsoup(bs4) 모듈로 강의목록 웹 스크래핑Programming/Python2021. 7. 6. 18:25
Table of Contents
반응형
최근에 파이썬을 다룰 일이 많이 없었는데
이번에 셀레니움으로 동적 크롤링을 공부하다가 파이썬 처음 입문했을 때
requests와 bs4로 처음 만들었던 코드를 찾아
학사 홈페이지에서 강의목록을 스크래핑하여 보여주는 것도 좋겠다 싶어서 오늘은 간단한 포스팅을 하려고 합니다.
세세한 내용은 Django 카테고리에서 다루려고 합니다.
실습 환경
OS: window 10
Language: python 3.9
IDE: visual studio code
라이브러리 설치
pip install requests
pip install bs4
import requests
from bs4 import BeautifulSoup
login_info = {
'username': 'id',
'password': 'password',
}
headers = {
'Referer': 'referer url',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
}
url = '학사 홈페이지 로그인 request URL'
with requests.session() as s:
res = s.post(url, login_info, headers=headers)
if res.status_code != 200:
raise Exception("page not found")
if res.text.find('로그아웃') == -1:
raise Exception("login failed")
past = s.get("세션을 가지고 이동할 url") #과거에 들었던 강의 목록을 불러오기 위해 과거 수강강좌로 이동
html = past.text
soup = BeautifulSoup(html, 'html.parser')
title = soup.select('.coursefullname')
for x in range(0,8):
print(title[x].text)
login_info로 form_data 안의 값을 채우고, 헤더 정보를 포함하여 POST를 통해 전달하여 로그인, 세션을 유지
세션을 가지고 강의목록 데이터가 있는 곳으로 이동하여 데이터를 CSS 셀렉터를 이용해 추출하여 출력합니다.
이렇게 강의목록을 가볍게 출력할 수 있는데요.
사실 개발자 도구를 통해 element, network를 확인해야 하는데 그 과정은 Django에서 다룰 때 같이 작성하겠습니다.
이렇게 학사 홈페이지에서 강의목록을 가져와서 출력할 수 있고 정보를 더 가져와서
학사관리시스템을 직접 만들어 볼 수도 있을 것 같습니다.
반응형
'Programming > Python' 카테고리의 다른 글
[python] selenium, chromedriver를 이용한 동적 크롤링으로 카페 정보 수집 실습하기 (0) | 2021.08.15 |
---|---|
[python] bs4를 이용한 정적 크롤링으로 이미지 저장 실습하기 (0) | 2021.08.15 |
@__Evening :: Good Evening
클라우드, 개발, 자격증, 취업 정보 등 IT 정보 공간
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!