Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion exercises/1901100139/d10/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,4 @@ def main():
logging.exception(e)

if __name__=='__main__':
main()
main()
34 changes: 34 additions & 0 deletions exercises/1901100139/d11/main.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@

import yagmail
import requests
import pyquery
import getpass
import logging
from mymodule import stats_word


logging.basicConfig(format='file:%(filename)s|line:%(lineno)d|message:%(message)s',level=logging.DEBUG)

def get_article():
r=requests.get('https://mp.weixin.qq.com/s/pLmuGoc4bZrMNl7MSoWgiA')
document= pyquery.PyQuery(r.text)
return document('#js_content').text()

def main():
try:
article=get_article()
result=stats_word.stats_text_cn(article,10)
logging.info('%s %s',type(result),str(result))
sender=input('请输入邮箱号:')
password=getpass.getpass('请输入密码:')
recipients=input('请输入收件邮箱')
yag=yagmail.SMTP(sender,password,'smtp.qq.com')
yag.send(recipients,'【1901100139】⾃学训练营 DAY11 PassionPit',str(result))
logging.info('已发送')
except Exception as e:
logging.exception(e)



if __name__=='__main__':
main()
22 changes: 22 additions & 0 deletions exercises/1901100139/d11/mymodule/stats_word.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from collections import Counter
def stats_text_en(text,count):
elements = text.split()
words = []
symbols = ',.*-!'
for element in elements:
for symbol in symbols:
element = element.replace(symbol,'')
if len(element) and element.isascii():
words.append(element)
return Counter(words).most_common(count)
def stats_text_cn(text,count):
cn_characters = []
for character in text:
if '\u4e00' <= character <= '\u9fff':
cn_characters.append(character)
return Counter(cn_characters).most_common(count)
def stats_text(text,count):
'''
合并中英词频的结果
'''
return stats_text_en(text,count) + stats_text_cn(text,count)