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了,这个根绝自己的情况来看。