내일배움캠프 11일차 개발일지
2021. 9. 29. 23:38ㆍ스파르타코딩클럽
# TIL
주기적 실행을 위한 flask-apscheduler 라이브러리
참고 https://viniciuschiele.github.io/flask-apscheduler/rst/usage.html
만들었던 사진저장 크롤링 함수를 서버에 올렸을때 주기적으로 실행시켜줄수 있게 만들어준다.
import time from flask_apscheduler import APScheduler import urllib class Config: SCHEDULER_API_ENABLED = True scheduler = APScheduler() scheduler.init_app(app) scheduler.start() @scheduler.task('interval', id='autoPiccraw', seconds=3600, misfire_grace_time=900) def autoPiccraw(): getPic() def getPic(): users = list(db.userInfo.find({}, {'_id': False})) headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'} for one in users: name = one['name'] url = one['url'] data = requests.get(url, headers=headers) soup = BeautifulSoup(data.text, 'html.parser') image = soup.select_one('meta[property="og:image"]')['content'] imgUrl = image # urlretrieve는 다운로드 함수 urllib.request.urlretrieve(imgUrl, "static/images/" + name + '.jpg') db.userInfo.update_one({'name': name}, {'$set': {'pic': '../static/images/' + name + '.jpg'}})
'스파르타코딩클럽' 카테고리의 다른 글
3주차 WIL (0) | 2021.10.07 |
---|---|
내일배움캠프 12일차 개발일지 (4) | 2021.09.29 |
내일배움캠프 10일차 개발일지 (0) | 2021.09.29 |
2주차 WIL (0) | 2021.09.26 |
내일배움캠프 9일차 개발일지 (0) | 2021.09.25 |