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

相关文章:
Python百度链接提交–主动推送链接给百度–实现快速收录

版权声明:
作者:José
链接:https://www.josejang.com/about-work/220.html
来源:José's ⎝⏠⏝⏠⎠ Blog
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>