python3 百度推送代码, 添加宝塔任务自动推送
import requests
import re
import json
push_log_path = '/www/wwwroot/josejang.com/push_log.txt' #日志文件,需要手动新建push_log.txt文件在网站根目录,并改成你的网站绝对路径
def get_sitemap_urls():
ret = requests.get('https://www.josejang.com/sitemap.xml').text #解析sitemap.xml中的链接地址
re_loc = re.compile('<loc>(.*?)</loc>')
urls = re.findall(re_loc,ret)
return urls
def get_pushd_urls():
with open(push_log_path) as f:
content = f.read()
urls = str(content).split('\n')
return list(filter(lambda x : x, urls))
def get_no_push_urls(num=20):
all_urls = get_sitemap_urls()
pushed_urls = get_pushd_urls()
urls = []
for url in all_urls :
if url in pushed_urls:
continue
if len(urls) == num :
break
urls.append(url)
#返回urls
return urls
def tianji_push(urls):
'''
天极推送
'''
headers = {'Content-Type':'text/plain'}
api = 'http://data.zz.baidu.com/urls?site=https://www.josejang.com&token=*******' #百度接口调用地址
ret = requests.post(api,headers=headers, data = urls, timeout=3).text
return ret
def write_to_log(url):
'''
写入文件
'''
with open(push_log_path,'a+') as f:
f.write(url)
if __name__ == "__main__":
urls = get_no_push_urls(5) #每次推送链接的数量 根据每次采集文章数量进行调整
for url in urls:
try:
ret = tianji_push(url)
print(url,ret)
data = json.loads(ret)
success_realtime = data['remain']
if success_realtime > 0 :
write_to_log(url)
print(url,'推送成功')
else:
print(url,'推送失败')
break
except:
pass
print('推送完成')
然后在宝塔后台添加计划任务
任务类型:shell脚本
任务名称:网站josejang.com百度推送
执行周期:执行周期 设置成你每次采集文章间隔时间
脚本内容:btpython /www/wwwroot/josejang.com/baidu.py
版权声明:
作者:José
链接:https://www.josejang.com/about-work/220.html
来源:José's ⎝⏠⏝⏠⎠ Blog
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论