利用python脚本实现百度推送、谷歌推送、神马推送、必应推送等站长api推送功能。

 4个月前     90  

文章目录

环境安装

  • centos7系统下安装python环境
yum install python3  python3-pip -y
pip3.6  install  requests  oauth2client

脚本示例

# -*- coding: utf-8 -*-
#
#author:feko
#time:20231116
#description:这是一个集合百度、神马、必应、头条、搜狗、360、谷歌站长URL自动推送工具


# ('百度推送', 'baiduts')
# ('神马推送', 'shenmats')
# ('必应推送', 'bingts')
# ('头条推送 <-- 预留', 'toutiaots')
# ('搜狗推送 <-- 预留', 'sougouts')
# ('360推送 <-- 预留', 'sots')
# ('谷歌推送 , 'googlets')


import  os,sys
import requests
from oauth2client.service_account import ServiceAccountCredentials
import httplib2


class ZhanZhang:
    def __init__(self,urlfile):
        self.urlfile = urlfile
        self.mysite = "www.vpsxr.com"       ##填写你的网站,例如www.baidu.com
        self.baidu_token = "xxx"  ##填写你的网站,对应百度的token
        self.baidu_num = 2500  ##百度API最高提交条数

        self.shenma_user_name = "xxxx@qq.com"  ##填写你的网站,对应神马用户名
        self.shenma_token = "TI_xxxx"  ##填写你的网站,对应神马的token
        self.shenma_num = 10000  ##神马API最高提交条数

        self.bing_token = "683xxxxx"  ##填写你的网站,对应必应API密钥
        self.bing_num = 90  ##必应API最高提交条数
        self.shenmasite = "https://%s"%(self.mysite)  ##对应http或https

        self.google_token = "vpsxr-xxx-xxx.json"  ##谷歌密钥JSON文件,xxxx-xxxx-xxxx.json
        self.google_num = 90  ##必应API最高提交条数
        self.shenmasite = "https://%s"%(self.mysite)  ##对应http或https

    def googlets(self):
        print("开始谷歌推送==========================")
        SCOPES = ["https://www.googleapis.com/auth/indexing"]
        ENDPOINT = "https://indexing.googleapis.com/v3/urlNotifications:publish"
        JSON_KEY_FILE = self.google_token
        credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES)
        http = credentials.authorize(httplib2.Http())

        f =open(self.urlfile,'r',encoding='utf-8')
        urls = f.readlines()  ##读取全部文件内容
        for url in urls:
            print(url)
            url = url.strip('\n')
            content = """{
              \"url\": \"%s\",
              \"type\": \"URL_UPDATED\"
            }"""%(url)
            response, content = http.request(ENDPOINT, method="POST", body=content)
            print(content)

    def baiduts(self):
        print("开始百度推送==========================")
        urls = self.get_urls(self.baidu_num)
        post_url = "http://data.zz.baidu.com/urls?site=%s&token=%s"%(self.mysite,self.baidu_token)
        headers = {
            'User-Agent': 'curl/7.12.1',
            'Host': 'data.zz.baidu.com',
            'Content-Type': 'text/plain',
            'Content-Length': '83'
        }
        print(urls)
        response = requests.post(post_url, headers=headers, data=urls)
        req = response.text
        print(req)

    def shenmats(self):
        print("开始神马推送==========================")
        urls = self.get_urls(self.shenma_num)
        post_url = "https://data.zhanzhang.sm.cn/push?site=%s&user_name=%s&resource_name=mip_add&token=%s"%(self.mysite,self.shenma_user_name,self.shenma_token)
        headers = {
            'User-Agent': 'curl/7.12.1',
            'Content-Type': 'text/plain',
        }
        print(urls)
        response = requests.post(post_url, headers=headers, data=urls)
        req = response.text
        print(req)

    def bingts(self):
        print("开始必应推送==========================")
        urls = self.get_urls(self.bing_num)
        urls =  urls.strip()
        urlList = urls.split('\n')
        post_url = 'https://ssl.bing.com/webmaster/api.svc/json/SubmitUrlbatch?apikey=%s' % (self.bing_token)

        ##把列表均分500份,必应限制了每次最多500条
        temp_list = []
        for i in range(0, len(urlList), 500):
            temp_list.append(urlList[i:i + 500])
        print("总%s条链接" % (len(urlList)))
        i = 1
        for j in temp_list:
            print("第%s次推送" % (i))
            i = i + 1
            data = {
                "siteUrl": self.shenmasite,
                "urlList": j
            }
            r = requests.post(post_url, json=data)
            print(r.json())



    #获取url条数,按倒序获取
    def get_urls(self,num):
        f =open(self.urlfile,'r',encoding='utf-8')
        lines = f.readlines()  ##读取全部文件内容
        new_lines = [i for i in lines if i != "" and i != "\n" and len(i) != 0] ##去除无用的行
        new_lines = new_lines[-num:]  #获取最后几行
        new_lines_str = ''.join(new_lines).strip('\n') #转成str
        print("获取的是文件最后%s条"%(len(new_lines)))
        return new_lines_str


if __name__ == '__main__':
    if not len(sys.argv) == 2:
        print ("参数不对,使用方法:python3 push_url_to_zhanzhang.py /xxx/sitemap-add.txt")
        exit(1)
    urlfile = sys.argv[1]
    if not os.path.exists(urlfile):
        print("%s 不存在,exit"%(urlfile))
    ret = ZhanZhang(urlfile)
    ret.baiduts()
    ret.shenmats()
    ret.bingts()
    ret.googlets()

 

使用说明:python3 push_url_to_zhanzhang.py /xxx/sitemap-add.txt

sitemap-add.txt 这个文件是每行一条url

 

获取百度推送token

点击获取

利用python脚本实现百度推送、谷歌推送、神马推送、必应推送等站长api推送功能。

 

获取神马推送token

点击获取

利用python脚本实现百度推送、谷歌推送、神马推送、必应推送等站长api推送功能。

 

获取必应推送api密钥

点击获取

利用python脚本实现百度推送、谷歌推送、神马推送、必应推送等站长api推送功能。

获取谷歌推送json密钥

看这篇文章获取:

版权声明:VPS推荐 发表于 4个月前,共 3680 字。提醒:请注意文章发布时间,如果太久了,相关活动可能失去时效性,请谅解!
转载请注明:利用python脚本实现百度推送、谷歌推送、神马推送、必应推送等站长api推送功能。 | VPS XR
京东云-国内服务器 华为云-国内服务器

暂无评论

暂无评论...