之前我提到了如何利用python批量提交链接给百度,今天给大家一个可以直接放到宝塔中让他自动推送的脚本。以后搞每日的推送就不用再手动点击软件啦。直接上代码。
百度主动推送脚本
import requests import re import json push_log_path = '/www/wwwroot/360baiduseo.com/push_log.txt' #日志文件,需要手动新建push_log.txt文件在网站根目录,并改成你的网站绝对路径 def get_sitemap_urls(): ret = requests.get('https://www.360baiduseo.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.360baiduseo.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('推送完成')
百度主动推送脚本使用说明
将上面代码复制到网站更目录,并保存文件名为baidu.py
更改www.360baiduseo.com为你的域名,并设置代码中的token为你的百度token
新建push_log.txt文件在网站根目录
在宝塔后台添加计划任务
任务类型:shell脚本
任务名称:网站360baiduseo.com的百度推送
执行周期:执行周期 设置成你每次采集文章间隔时间
脚本内容:python3 /www/wwwroot/360baiduseo.com/baidu.py
如果在使用过程中遇到什么问题,也可以直接联系我,一起学些交流。