由于任务需求,要关注凤凰新闻网相关报道,要做到出现相关报道报警来通知我,时间紧凑,本人水平也有限,写的比较简单,请见谅。如有人实现过类似功能,也请多多指教。下面直接贴代码了。
#_*_ coding:utf-8 _*_
from bs4 import BeautifulSoup
import urllib
import codecs
import time
import os
def setstr(st):
instr = st.split();
outstr=''
for it in instr:
outstr=outstr+it+' '
return outstr
def findstr(ite):
if (ite.find(u'关键字1')!=-1) or (ite.find(u'关键字2')!=-1) or (ite.find(u'关键字3')!=-1):
f = codecs.open('sys.txt','a+','utf-8')
txt = f.read()
if txt.find(ite)==-1:
f.write(ite)
f.write('\r\n')
f.close()
return 1
else:
f.close()
return 0
else:
return 0
def fun(url):
soup = BeautifulSoup(urllib.urlopen(url).read())
s0 = soup.find_all('div',{'class':'newsList'})
s1=BeautifulSoup(s0[0].prettify())
s2= s1.find_all('li')
for item in s2:
sss=item.get_text().lstrip().rstrip().replace('\n','')
str1=setstr(sss)
if findstr(str1):
os.system("start wmplayer.exe C:\\sound.mp3")
print str1
if __name__=="__main__":
url = 'http://news.ifeng.com/listpage/11502/0/1/rtlist.shtml'
while(1):
fun(url)
time.sleep(60)