hsMlXmTIs

23朵毒蘑菇

Python向必应,百度等搜索引擎提交自己的链接

原文章迁移

python|SEO

2020-12-23 10:22:06 已有版本 1 个 show:0.59kTYPE: blog

SEO对于一个网站来说是非常重要的了,而向搜索引擎提交自己的链接也是非常重要的,可以提交站点地图,可以一条一条提交等等,而链接开始增多了的话,那就有些麻烦了。

所以有些搜索引擎有了让大家提交链接的接口,我们直接调用就行了,也是非常简单的,给大家写了一个做参考

需要用到的网站 点击查看
安装库这些就不说了
一:创建一个.py文件,里面的代码如下

import requests #发起请求的库
import json
import _thread #线程库

#利用接口向各个搜索引擎提交url(目前只有必应和百度,做一个参考嘛)

#提交到必应
def submitBing(url):
    try:
        headers={
            'Host':'ssl.bing.com',
            'Content-Type':'application/json; charset=utf-8',
        }
        response = requests.post(
            "https://ssl.bing.com/webmaster/api.svc/json/SubmitUrl?apikey=你申请的key",
            json={
                'siteUrl':'https://www.dumogu.top', #你在百度资源上添加的网站域名
                'url':url,
            },
            headers=headers, #请求头,超时时间
            timeout=3,
        )
        response = json.loads(response.text) #转化为json
        print(response) #控制台打印,可以删除
        return response['d'] == None #判断是否成功,必应上应该是这么判断的
    except:
        return False

#提交到百度
def submitBaidu(url):
    try:
        headers={
            'User-Agent':'curl/7.12.1',
            'Host':'data.zz.baidu.com',
            'Content-Type':'text/plain',
            'Content-Length':'83',
        }
        response = requests.post(
            "http://data.zz.baidu.com/urls?site=https://www.dumogu.top&token=你申请的key",
            data=url,
            headers=headers,
            timeout=3,
        )
        response = json.loads(response.text)
        print(response)
        return response['success'] == 1
    except:
        return False
def submit(url):
    #创建线程执行,不考虑返回结果的情况,如需同步执行直接调用submitBing(url)即可
    #因为requests库本身是不支持异步提交的,又要异步又要返回结果的可以考虑异步请求库
    try:
        _thread.start_new_thread(submitBing,(url,))
        _thread.start_new_thread(submitBaidu,(url,))
    except:
        return


#执行
if __name__ == '__main__':
    submit("https://www.dumogu.top") #如果是外部引入直接调用submit这个方法即可

二:控制台里运行
一篇文字
可以看到什么也没打印,因为是在线程中运行的,而主程序在控制台里已经运行完毕了,所以不会在打印线程里运行的了,如果非要看的话也可以,执行的时候后面跟一个无限循环不让主程序终止就行了(只用于调试,因为会让程序一直卡在这里)

#执行的这里改为这样
if __name__ == '__main__':
    submit("https://www.dumogu.top") #如果是外部引入直接调用submit这个方法即可
    while True:
        pass

执行结果(我的key错了,需要调用自己申请的key)
一篇文字
最简单的调用就是直接不创建线程了,直接submitBaidu(url)就行了,同步执行,因为我自己的情况就是不需要等待它是否调用成功,提交了就OK了,这个根绝自己的情况来看。