Python实现百度站长平台api推送

Dear-linko 71 0 本文共1248个字

功能原理

    第一步:requests.get()方法抓取文件内容
    第二步:用正则提取出url并转化成字符串
    第三步:通过requests.post()方法向推送接口发送POST请求

相关拓展

    百度站长平台api推送接口及推送示例:

    Python实现百度站长平台api推送

    温馨提示

    推送接口与post推送示例每个网站都不一样,自行登录站长平台查看。

Python代码实现

import re
import requests

class api_send:

    def __init__(self):
        # 此处填写要提交的sitemap的url
        self.web_url = "https://yourdomain/sitemap.xml"
        # 此处填写百度的推送接口
        self.api = "http://data.zz.baidu.com/urls?site=https://yourdomain&token=yourtoken"
        # 此处复制百度的推送示例
        self.headers = {
            'User-Agent': 'curl/7.12.1',
            'Host': 'data.zz.baidu.com',
            'Content - Type': 'text / plain',
            'Content - Length': '83'
        }
        self.url_reg = re.compile("<loc>(.*)</loc>")

    def web_request(self):
        headers = {
           "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36 Edg/90.0.818.42"
        }
        self.content = requests.get(url=self.web_url,headers=headers).text

    def get_urls(self):
        li_urls = re.findall(self.url_reg, self.content)
        self.urls = ""
        for url in li_urls:
            self.urls += "\n"+url

    def send_post(self):
        response = requests.post(
            self.api,
            headers = self.headers,
            data = self.urls,
            timeout = 20
        ).text
        return response


if __name__ == '__main__':
    obj = api_send()
    obj.web_request()
    obj.get_urls()
    result = obj.send_post()
    print(result)

运行结果

运行后提示如:{"remain":98904,"success":1096},这样就表示代码运行成功了!

发表评论 取消回复
表情 图片 链接 代码

分享