diff --git a/Pydoc/configs.html b/Pydoc/configs.html index 1adc037..e32242e 100644 --- a/Pydoc/configs.html +++ b/Pydoc/configs.html @@ -28,9 +28,10 @@ EMAIL_PORT = 0
EMAIL_SERVER = ''
FROM_ADDR = ''
+LOG_ENABLED = True
PASSWORD = ''
SCHOOL_NAME = ''
-SPIDER_CONFIG = [{'coding': '', 'rule': '', 'subject_CN': '', 'subject_EN': '', 'url': '', 'url_main': ''}]
+SPIDER_CONFIG = [{'coding': '', 'rule': '', 'subject_CN': '', 'subject_EN': '', 'url': '', 'url_main': ''}, {'coding': '', 'rule': '', 'subject_CN': '', 'subject_EN': '', 'url': '', 'url_main': ''}]
TWILIO_NUMBER = ''
VERSION = '' \ No newline at end of file diff --git a/Pydoc/send.html b/Pydoc/send.html index 12d2687..4c58b1a 100644 --- a/Pydoc/send.html +++ b/Pydoc/send.html @@ -27,7 +27,7 @@ Functions         -
Send(msgs, subject, send_number, to_addr_str, flag=1)
向手机号码为send_number的人发送通知信息
+
Send(msgs, subject, send_number, to_addr_str, flag=True)
向手机号码为send_number的人发送通知信息
向to_addr_str中的邮箱地址发送主题为subject的通知信息
支持是否写入日志记录的选择               
                                
@@ -40,7 +40,7 @@     send_number: 短信接收者的手机号码
    to_addr_str: 收件人的邮箱地址,多个邮箱地址之间应以','分割,类型为字符串
        例如:'example@qq.com','example1@qq.com,example2@qq.com'
-    flag: 一个可选变量,用来决定是否在发送日志中记录此次发送信息,默认为1(记录)
+    flag: 一个可选变量,用来决定是否在发送日志中记录此次发送信息,默认为True(记录)
Send_email(txt, to_addr_str, subject)
向to_addr_str中的邮箱地址发送主题为subject,正文部分为txt的邮件
支持多人同时发送
Args:
diff --git a/Pydoc/spider.html b/Pydoc/spider.html index 3e9e617..23a7701 100644 --- a/Pydoc/spider.html +++ b/Pydoc/spider.html @@ -61,7 +61,7 @@ ','师大主页暂无新通知!
'
        [['关于xxx的通知','2017-03-10','http://xxxx.com'],['关于xxx的通知','2017-03-10','http://xxxx.com']]
-
Spider(url, url_main, rule, subject_CN, subject_EN, coding, flag=1)
爬取url的源码,并从中按照rule提供的正则表达式规则提取有用信息,并对数据进行处理,
+
Spider(url, url_main, rule, subject_CN, subject_EN, coding, flag=True)
爬取url的源码,并从中按照rule提供的正则表达式规则提取有用信息,并对数据进行处理,
生成通知提醒的内容,在subject_EN+'_log.md'文件中记录日志,
返回检查更新的状态码,以及通知提醒的内容
若无新通知,则通知提醒的内容为空
@@ -73,7 +73,7 @@     rule: 表示正则表达式规则的字符串,限制为三个分组,用于从源码中提取信息
    subject_CN: 抓取的网站类型
    subject_EN: 生成的日志文件的文件名前缀,数据文件的文件名,以及输出时显示在单条日志信息前的对日志类型的描述
-    flag: 一个可选变量,用来决定是否在日志中记录此次检查的结果,默认为1(记录)
+    flag: 一个可选变量,用来决定是否在日志中记录此次检查的结果,默认为True(记录)
    
Returns:
    status: 检查更新的状态码
diff --git a/README.md b/README.md index 4a4af72..2b4ff3f 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ - [x] 通知更新邮件提醒 - [x] 多人同时进行提醒 - [x] 发送日志、更新检查日志 -- [ ] 日志功能可选 +- [x] 日志功能可选 - [ ] 每个用户要提醒的部门可选 - [ ] 数据库存储 @@ -58,6 +58,11 @@ AUTHOR_NAME = '' AUTHOR_EMAIL = '' ``` +### Log Config +是否在日志文件中记录日志,默认为True +``` +LOG_ENABLED = True +``` ### Spider Config 爬虫的相关配置,包括:部门类型(EN),部门类型(CN)中,"更多通知"页的链接,链接的公共部分,正则表达式,网页编码格式 subject_EN:数据文件的文件名 @@ -86,9 +91,11 @@ SPIDER_CONFIG = [ ] ``` 这里有一个爬虫配置的例子: -### Examples +#### Example ```python -SPIDER_CONFIG = [{'subject_EN':'snnu_index', 'subject_CN':'师大主页', 'url': 'http://www.snnu.edu.cn/tzgg.htm', 'url_main' : 'http://www.snnu.edu.cn/info/1085/', +SPIDER_CONFIG = [ +{ +'subject_EN':'snnu_index', 'subject_CN':'师大主页', 'url': 'http://www.snnu.edu.cn/tzgg.htm', 'url_main' : 'http://www.snnu.edu.cn/info/1085/', 'rule' : 'info/1085/(?P\d+\.htm)" target="_blank">(?P[\s\S]{5,100})((?P<date>\d*-\d*-\d*))','coding':'utf-8'}, {'subject_EN':'snnu_css', 'subject_CN':'计科院主页', 'url': 'http://ccs.snnu.edu.cn/tzgg.htm', 'url_main' : 'http://ccs.snnu.edu.cn/' , 'rule' : '<a target="_blank" href="(?P<link>[^"]*)">(?P<title>[^( </)]*)[^"]*"[^>]*>(?P<date>\d*-\d*-\d*)','coding':'utf-8'}, diff --git a/src/configs.py b/src/configs.py index 016522f..57b295c 100644 --- a/src/configs.py +++ b/src/configs.py @@ -24,6 +24,9 @@ EMAIL_PORT = 0 EMAIL_SERVER = '' +# Log Config +LOG_ENABLED = True + # spider config SPIDER_CONFIG = [ { diff --git a/src/main.py b/src/main.py index d891707..341c350 100644 --- a/src/main.py +++ b/src/main.py @@ -64,9 +64,9 @@ def main(): for dic in configs.SPIDER_CONFIG: try: status, new_data = Spider(dic['url'], dic['url_main'], dic['rule'], dic['subject_CN'], - dic['subject_EN'], dic['coding']) + dic['subject_EN'], dic['coding'],configs.LOG_ENABLED) if status >= 1: - send.Send(new_data, dic['subject_CN'], send_number, to_addr_str) + send.Send(new_data, dic['subject_CN'], send_number, to_addr_str,configs.LOG_ENABLED) except Exception as e: print('Exception: ', e) Error_log = '异常信息如下:\n' + format_exc() + '-' * 70 + '\n' diff --git a/src/send.py b/src/send.py index bbc87fe..abcba2d 100644 --- a/src/send.py +++ b/src/send.py @@ -99,7 +99,7 @@ def Send_email(txt, to_addr_str, subject): return log_send_email -def Send(msgs, subject, send_number, to_addr_str, flag=1): +def Send(msgs, subject, send_number, to_addr_str, flag=True): ''' 向手机号码为send_number的人发送通知信息 向to_addr_str中的邮箱地址发送主题为subject的通知信息 @@ -114,7 +114,7 @@ def Send(msgs, subject, send_number, to_addr_str, flag=1): send_number: 短信接收者的手机号码 to_addr_str: 收件人的邮箱地址,多个邮箱地址之间应以','分割,类型为字符串 例如:'example@qq.com','example1@qq.com,example2@qq.com' - flag: 一个可选变量,用来决定是否在发送日志中记录此次发送信息,默认为1(记录) + flag: 一个可选变量,用来决定是否在发送日志中记录此次发送信息,默认为True(记录) ''' temp = '' log_send = [] @@ -130,5 +130,5 @@ def Send(msgs, subject, send_number, to_addr_str, flag=1): log_send.append(log_send_sms) log_send.append(log_send_email) - if(flag == 1): + if(flag == True): Log_Write('Send', log_send) diff --git a/src/spider.py b/src/spider.py index ce43803..9ab5a04 100644 --- a/src/spider.py +++ b/src/spider.py @@ -125,7 +125,7 @@ def Log_generate(status, data, subject_CN): return log_txt -def Spider(url, url_main, rule, subject_CN, subject_EN, coding, flag=1): +def Spider(url, url_main, rule, subject_CN, subject_EN, coding, flag=True): ''' 爬取url的源码,并从中按照rule提供的正则表达式规则提取有用信息,并对数据进行处理, 生成通知提醒的内容,在subject_EN+'_log.md'文件中记录日志, @@ -139,7 +139,7 @@ def Spider(url, url_main, rule, subject_CN, subject_EN, coding, flag=1): rule: 表示正则表达式规则的字符串,限制为三个分组,用于从源码中提取信息 subject_CN: 抓取的网站类型 subject_EN: 生成的日志文件的文件名前缀,数据文件的文件名,以及输出时显示在单条日志信息前的对日志类型的描述 - flag: 一个可选变量,用来决定是否在日志中记录此次检查的结果,默认为1(记录) + flag: 一个可选变量,用来决定是否在日志中记录此次检查的结果,默认为True(记录) Returns: status: 检查更新的状态码 @@ -151,7 +151,7 @@ def Spider(url, url_main, rule, subject_CN, subject_EN, coding, flag=1): status, new_data = Data_processing(subject_EN, data_use, url_main) log_txt = Log_generate(status, new_data, subject_CN) - if flag == 1: + if flag == True: tool.Log_Write(subject_EN, log_txt) return status, new_data diff --git a/test/test_configs.py b/test/test_configs.py index 75467b1..83e03f8 100644 --- a/test/test_configs.py +++ b/test/test_configs.py @@ -20,45 +20,48 @@ EMAIL_PORT = 0 EMAIL_SERVER = '' +# Log Config +LOG_ENABLED = True + # spider config SPIDER_CONFIG = [ { - 'subject_EN':'snnu_index', - 'subject_CN':'师大主页', - 'url': 'http://www.snnu.edu.cn/tzgg.htm', + 'subject_EN':'snnu_index', + 'subject_CN':'师大主页', + 'url': 'http://www.snnu.edu.cn/tzgg.htm', 'url_main' : 'http://www.snnu.edu.cn/info/1085/', - 'rule' : 'info/1085/(?P<link>\d+\.htm)" target="_blank">(?P<title>[\s\S]{5,100})((?P<date>\d*-\d*-\d*))', + 'rule' : 'info/1085/(?P<link>\d+\.htm)" target="_blank">(?P<title>[\s\S]{5,100})((?P<date>\d*-\d*-\d*))', 'coding':'utf-8' }, { - 'subject_EN':'snnu_css', - 'subject_CN':'计科院主页', + 'subject_EN':'snnu_css', + 'subject_CN':'计科院主页', 'url': 'http://ccs.snnu.edu.cn/tzgg.htm', 'url_main' : 'http://ccs.snnu.edu.cn/', - 'rule' : '<a target="_blank" href="(?P<link>[^"]*)">(?P<title>[^( </)]*)[^"]*"[^>]*>(?P<date>\d*-\d*-\d*)', + 'rule' : '<a target="_blank" href="(?P<link>[^"]*)">(?P<title>[^( </)]*)[^"]*"[^>]*>(?P<date>\d*-\d*-\d*)', 'coding':'utf-8' }, { - 'subject_EN':'snnu_jwc', - 'subject_CN':'教务处主页', - 'url': 'http://jwc.snnu.edu.cn/news_more.xhm?lm=2', + 'subject_EN':'snnu_jwc', + 'subject_CN':'教务处主页', + 'url': 'http://jwc.snnu.edu.cn/news_more.xhm?lm=2', 'url_main' : 'http://jwc.snnu.edu.cn/html/news_view.xhm?newsid=', - 'rule' : 'newsid=(?P<link>\d*)" [^ ]* title="(?P<title>[^(">)]*)[^<]*[^(]*\((?P<date>\d*/\d*/\d*)', + 'rule' : 'newsid=(?P<link>\d*)" [^ ]* title="(?P<title>[^(">)]*)[^<]*[^(]*\((?P<date>\d*/\d*/\d*)', 'coding':'gbk' }, { - 'subject_EN':'snnu_xsc', - 'subject_CN':'学生处主页', - 'url': 'http://www.xsc.snnu.edu.cn/Announcements.asp', + 'subject_EN':'snnu_xsc', + 'subject_CN':'学生处主页', + 'url': 'http://www.xsc.snnu.edu.cn/Announcements.asp', 'url_main' : 'http://www.xsc.snnu.edu.cn/Announcements.asp?id=144&bh=', - 'rule' : 'gk3">(?P<date>\d*-\d*-\d*)[^;]*;[^;]*;[^;]*;[^;]*;bh=(?P<link>\d*)[^>]*>(?P<title>[^</]*)', + 'rule' : 'gk3">(?P<date>\d*-\d*-\d*)[^;]*;[^;]*;[^;]*;[^;]*;bh=(?P<link>\d*)[^>]*>(?P<title>[^</]*)', 'coding':'gbk' }, { - 'subject_EN':'snnu_lib', - 'subject_CN':'图书馆主页', - 'url': 'http://www.lib.snnu.edu.cn/action.do?webid=w-d-bggg-l', + 'subject_EN':'snnu_lib', + 'subject_CN':'图书馆主页', + 'url': 'http://www.lib.snnu.edu.cn/action.do?webid=w-d-bggg-l', 'url_main' : 'http://www.lib.snnu.edu.cn/action.do?webid=w-l-showmsg>ype=a&pid=', - 'rule' : 'pid=(?P<link>\d*)[\s\S]{20,57}>(?P<title>[^<]*)</[af][\S\s]{18,70}(?P<date>\d{4}-\d*-\d*)', + 'rule' : 'pid=(?P<link>\d*)[\s\S]{20,57}>(?P<title>[^<]*)</[af][\S\s]{18,70}(?P<date>\d{4}-\d*-\d*)', 'coding':'utf-8' } ] diff --git a/test/test_spider.py b/test/test_spider.py index 8ecd5f7..77253b8 100644 --- a/test/test_spider.py +++ b/test/test_spider.py @@ -7,6 +7,7 @@ from traceback import format_exc from tool import * from test_configs import * +from configs import LOG_ENABLED def test_re_group(): @@ -65,7 +66,7 @@ def test_Spider(): for dic in spider_list: try: status, data = Spider(dic['url'], dic['url_main'], dic['rule'], dic['subject_CN'], - dic['subject_EN'], dic['coding']) + dic['subject_EN'], dic['coding'],LOG_ENABLED) print(status) print(data) except Exception as e: