티스토리 뷰
학교 공지 사항 자동화를 해보자 - 3
Intro. 사업단 공지 데이터 추출을 해보자
앞선 학과 공지와 같이 리스트 형태로 공지를 뿌리고 있음을 확인 할 수 있다. 보다보니 게시판 형태라 이런 패턴으로 데이터를 뿌리는 것은 당연하다
역시나 개발자 도구를 켜서 CSS 셀렉터를 추출해서, 리스트의 위치를 특정해야 한다
html 코드를 보니 역시나 tr로 뿌리고 있다. 대신 td 태그 내의 내용물이 조금씩 다르다
학과 공지 사항에서 데이터를 추출한 것과 비슷한 맥락으로 코드를 짜면 될거 같다
코드
import requests
import re
from bs4 import BeautifulSoup
from datetime import datetime
url = 'https://www.sojoong.kr/www/notice/'
today = str(datetime.now().date()).replace("-",".")
def getTodayJnuSW():
post = []
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
t = soup.findAll('td',attrs={"class":"alignLeft"})
for tr in soup.findAll('td',attrs={"class":"alignLeft"}):
date = tr.find('em').text
title = tr.find('strong').text
href = re.search(r'<a\s.*?href=[\'"]?([^\'" >]+)',str(tr)).group(1)
postNumber= re.compile("[0-9]{3,5}").search(href).group()
postUrl = "https://www.sojoong.kr/www/notice/view/"+postNumber
if date!=today:
continue
post.append([title,postUrl])
print(f"Adding… {date} : {title}")
return post
- 앞선 공지와 마찬가지로, 뭉텅이로 된 데이터에서 정규식을 이용하여 데이터를 추출하였다.
- 하지만, find() 함수를 사용하니 쉽게 태그 별로 데이터를 추출 할 수 있었다
- 사업단 홈페이지는 게시물마다 번호를 부여해서, 리스트 뷰를 보는 곳에서는 게시물 번호만 알 수 있었다.
- 그래서, Url을 붙여서 해당 포스트로 이동하도록 하였다.
- URL을 다루다보면, 암호화 된 URL이 뒤에 붙는 것을 볼 수 있는데, 그냥 날려도 상관 없다.
레퍼런스
728x90
'프로젝트 > 사이드 프로젝트' 카테고리의 다른 글
BlindTok (1) - 프로젝트 초기 세팅 (0) | 2023.03.29 |
---|---|
학교 공지 사항 자동화를 해보자 - 5 (0) | 2023.03.23 |
학교 공지 사항 자동화를 해보자 - 4 (0) | 2023.03.22 |
학교 공지 사항 자동화를 해보자 - 2 (0) | 2023.03.22 |
학교 공지 사항 자동화를 해보자 - 1 (0) | 2023.03.22 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 취업
- 개발/Java
- 개발/언어/Java
- 개발/언어론
- 개발/컴퓨터네트워크
- 개발/Tools/프레임워크/Spring
- ⌨️Developer
- 개발/보안
- 개발/webrtc
- AI/ML
- 개발/OOP
- 대외활동/카카오테크캠퍼스
- 카카오 테크 캠퍼스
- AI/GPT
- 알고리즘
- 개발/네트워크
- 개발/에러
- 개발
- 개발/CS/OS
- 개발/CS/알고리즘
- 카테캠
- 개발/Java/Spring
- ai
- 개발/MySQL
- 카카오테크캠퍼스
- 개발/프레임워크&라이브러리
- 개발/Electron
- electron
- ⌨️Developer/보안
- 개발/환경
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함