pip install -r requirements.txt
复制并修改 examples/config.example.json 为 config.json:
{
"smtp": {
"server": "smtp.qq.com",
"port": 587,
"username": "your_email@qq.com",
"password": "your_app_password",
"sender_email": "your_email@qq.com"
},
"days": 0,
"proxy": {
"enabled": false,
"always_use": false,
"url": "http://127.0.0.1:7890",
"username": "",
"password": ""
},
"error_notification": {
"enabled": false,
"recipients": ["admin@example.com"]
}
}
配置说明:
smtp: SMTP邮件服务器配置days: 抓取多少天内的通知,默认为0天proxy: 代理配置(可选)
enabled: 是否启用代理配置always_use: 是否始终使用代理(false=失败时使用代理)url: 代理服务器地址error_notification: 错误邮件通知配置复制并修改 examples/emails.example.json 为 emails.json:
[
{
"name": "张三",
"email": "zhangsan@example.com",
"categories": ["jwc", "news"]
},
{
"name": "李四",
"email": "lisi@example.com",
"categories": ["student", "gschool"]
}
]
分类说明:
jwc: 教务处通知news: 学校新闻网通知student: 学生处通知gschool: 研究生院通知两种代理使用模式:
always_use: true时,始终通过代理访问always_use: false时,先尝试直连,失败后自动启用代理重试自动重试机制:
python news_scraper.py
可以使用系统的定时任务功能:
Windows (任务计划程序):
python,参数 news_scraper.py,起始于脚本目录Linux/Mac (crontab):
# 每天晚上9点执行
0 21 * * * cd /path/to/script && python3 news_scraper.py
脚本运行时会生成 news_scraper.log 日志文件,记录详细的运行状态和错误信息。
ecustnews/ ├── news_scraper.py # 主脚本 ├── config.json # 主配置文件 ├── emails.json # 收件人列表 ├── requirements.txt # 依赖包 ├── README.md # 说明文档 ├── news_scraper.log # 日志文件(运行后生成) ├── news.json # 抓取的新闻数据(运行后生成) └── examples/ ├── config.example.json # 配置文件示例 └── emails.example.json # 收件人配置示例
news_scraper.log