Scrapy + SES로 웹 페이지의 변화를 감지 & 이메일로 알림
6403 단어 Scrapinghubses파이썬Scrapyscraping
개요
웹페이지의 새로운 투고나 가격 변동...등의 갱신을 알려 주었으면 하는 것은 자주 있다. 본 논문에서는
웹 스크래핑 프레임워크 scrapy에서 얻은 웹 페이지의 변화를 AWS의 SES(Simple Email Service)에 의해 메일로 알려주는 방법의 한 비늘을 소개한다. 물론 여러 페이지 가능.
상세
PasS로 Scrapinghub를 사용합니다. 클라우드 서버에 의한 정기 실행, 데이터베이스로서 사용할 수 있다.
spidername.py와 scriptname.py를 시간차로 정기적으로 실행한다.
(scrapinghub에서는 scrapy로 제어되는 spider 외에 일반 python script도 실행할 수 있습니다. 배포를 위해 setup.py에 기재 필요.)
# Automatically created by: shub deploy
from setuptools import setup, find_packages
setup(
name = 'project',
version = '2.x',
packages = find_packages(),
package_data={'directoryname0': ['directoryname1/*.html']},
scripts=['script_directoryname/scriptname.py'],
entry_points = {'scrapy': ['settings = directoryname0.settings']},
)
spidername.py로 웹 페이지를 크롤링, 데이터 추출하고 pipeline.py에서 (scrapy에 의해 setting.py로 설정하면 자동으로 이루어진다.) DB에 저장.
scriptname.py에서 DB를 찾아 웹 페이지 업데이트와 같은 조건에서 다음과 같이 메일을 보냅니다.
import boto3
from jinja2 import Environment, PackageLoader
from directoryname0 import settings
jinja_env = Environment(loader=PackageLoader('directoryname0', 'directoryname1'))
def send_email_alert(items):
html_body = jinja_env.get_template('email.html').render(items=items)
client = boto3.client("ses",
aws_access_key_id = settings.AWS_ACCESS_KEY,
aws_secret_access_key = settings.AWS_SECRET_KEY,
region_name = settings.SES_REGION)
client.send_email(
Destination={'ToAddresses': [settings.EMAIL_ALERT_TO],},
Message={
'Body': {'Html': {'Charset': 'UTF-8',
'Data':html_body},},
'Subject': {'Charset': 'UTF-8',
'Data': 'Email title',},
},
Source= settings.EMAIL_ALERT_FROM,
)
Reference
HOW TO BUILD YOUR OWN PRICE MONITORING TOOL
ScrapyCloud + DynamoDB로 서버리스 스크래핑
Reference
이 문제에 관하여(Scrapy + SES로 웹 페이지의 변화를 감지 & 이메일로 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yama_ringo/items/e8ee6b00f55b352f7a16
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
PasS로 Scrapinghub를 사용합니다. 클라우드 서버에 의한 정기 실행, 데이터베이스로서 사용할 수 있다.
spidername.py와 scriptname.py를 시간차로 정기적으로 실행한다.
(scrapinghub에서는 scrapy로 제어되는 spider 외에 일반 python script도 실행할 수 있습니다. 배포를 위해 setup.py에 기재 필요.)
# Automatically created by: shub deploy
from setuptools import setup, find_packages
setup(
name = 'project',
version = '2.x',
packages = find_packages(),
package_data={'directoryname0': ['directoryname1/*.html']},
scripts=['script_directoryname/scriptname.py'],
entry_points = {'scrapy': ['settings = directoryname0.settings']},
)
spidername.py로 웹 페이지를 크롤링, 데이터 추출하고 pipeline.py에서 (scrapy에 의해 setting.py로 설정하면 자동으로 이루어진다.) DB에 저장.
scriptname.py에서 DB를 찾아 웹 페이지 업데이트와 같은 조건에서 다음과 같이 메일을 보냅니다.
import boto3
from jinja2 import Environment, PackageLoader
from directoryname0 import settings
jinja_env = Environment(loader=PackageLoader('directoryname0', 'directoryname1'))
def send_email_alert(items):
html_body = jinja_env.get_template('email.html').render(items=items)
client = boto3.client("ses",
aws_access_key_id = settings.AWS_ACCESS_KEY,
aws_secret_access_key = settings.AWS_SECRET_KEY,
region_name = settings.SES_REGION)
client.send_email(
Destination={'ToAddresses': [settings.EMAIL_ALERT_TO],},
Message={
'Body': {'Html': {'Charset': 'UTF-8',
'Data':html_body},},
'Subject': {'Charset': 'UTF-8',
'Data': 'Email title',},
},
Source= settings.EMAIL_ALERT_FROM,
)
Reference
HOW TO BUILD YOUR OWN PRICE MONITORING TOOL
ScrapyCloud + DynamoDB로 서버리스 스크래핑
Reference
이 문제에 관하여(Scrapy + SES로 웹 페이지의 변화를 감지 & 이메일로 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yama_ringo/items/e8ee6b00f55b352f7a16
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Scrapy + SES로 웹 페이지의 변화를 감지 & 이메일로 알림), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yama_ringo/items/e8ee6b00f55b352f7a16텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)