本帖最后由 kover 于 2022-12-19 13:37 编辑
看到破友搞的新闻推送,心里也是痒痒的
看到这个帖子抓取的163早报 https://www.52pojie.cn/thread-1659205-1-1.html
我也用了一阵子,发现了一些问题
就是这个地址发的新闻比较晚,有时当天的还没发布,但是定时抓取的时间又到了,就会抓取昨天的来发了
现在我改进了一下,思路如下
先获取当天的日期跟文章标题的日期对比,如果一致再推送,不一致就每隔5分钟抓一次,半小时内如果一致就推送,否则就退出
但是实际上运行后并没有改进成功,非当天的是不推送了,但后面半小时也没见再推。看今天日志确实最后一次抓到的当天的日期
大家帮忙看下问题在哪里?应该是if。。。while。。那段没写好
代码如下:
if __name__ == '__main__':
url = "https://www.163.com/dy/media/T1603594732083.html"
heders = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'}
rsp = requests.get(url, headers=heders)
hot = rsp.content.decode('utf-8')
jt = datetime.datetime.now().strftime('%m月%d')
rq = re.findall('(?<=知晓天下事 ).*(?=日">)',hot)[0].split('日')
num = 0
if rq[0] != jt :
while num<5 :
#print(num,rq[0])
time.sleep(360)
num +=1
url = "https://www.163.com/dy/media/T1603594732083.html"
heders = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'}
rsp = requests.get(url, headers=heders)
hot = rsp.content.decode('utf-8')
rq = re.findall('(?<=知晓天下事 ).*(?=日">)',hot)[0].split('日')
else :
today_url = re.findall('https://www.163.com/dy/article/.*\.html', hot)[0]
#print(today_url)
rsp = requests.get(today_url, headers=heders)
hot = rsp.content.decode('utf8')
news_list = re.findall('(?<=知晓天下事!<br/>).*(?=<br/></p><p class="f_center")',hot)[0].split('<br/>')
msg = '\n'.join(news_list)
wx = WeChat_SMS()
if len(news) > 737 :
news1 = news[0:737]
news2 = news[737:]
print(wx.send_data(news1))
print(wx.send_data(news2))
else:
print(wx.send_data(news))
文化低取的标题让大家见怪了,大家笑笑就好别往心上去
感谢夸克逃逸热心帮助 |