百度收录问题一直是不少渣渣头痛的问题,而官方其实提供了普通收录和快速收录这样的接口,直接调用官方api接口,大力出奇迹,你需要相信,你尽管seo,有排名算我输,不收录,怎么会呢,不是给你留了一个首页网址么?以前写过熊掌号的api网址提交,可惜被清退了,也不知道能不能用了。
其实调用官方api还是比较简单,直接按照官方给出的示例和参数就能实现,稍微抄抄改改,你也能够实现,至于收录效果,还是前面说的那句话,也是国内seo人员的核心,大力出奇迹!
示例代码
#百度普通收录?资源提交?API提交
#微信:huguo00289
#?-*-?coding:?UTF-8?-*-
import?requests
import?json
def?api(site,token,url):
????print(f">>>?正在向百度推送链接--?{url}?..")
????post_url=f"http://data.zz.baidu测试数据/urls?site={site}&token={token}"
????headers?=?{
????????'User-Agent':?'curl/7.12.1',
????????'Host':?'data.zz.baidu测试数据',
????????'Content-Type':?'text/plain',
????????'Content-Length':?'83',
????}
????response=requests.post(post_url,headers=headers,data=url)
????req=response.text
????if?"success"?in?req:
????????print(f"恭喜,{url}?--?百度推送成功!")
????????req_json=json.loads(req)
????????print(f'当天剩余的可推送url条数:?{req_json["remain"]}')
????else:
????????print(f"{url}?--?百度推送失败!")
下面我们继续来优化完善一下!
首先网站地图,想必大家都知道,sitemap.xml格式文件,里面包含有网站所有的网站,我们可以通过它来向搜索引擎提交网业地址,同时我们也可以在它身上下功夫,这里我使用的网站地图文件为老虎地图所制作。
从sitemap.xml文件读取到网页链接地址,使用正则表达式就可以很轻松的实现目的!
示例代码
????def?get_url(self):
????????with?open(self.path,'r',encoding='utf-8')?as?f:
????????????xml_data=f.read()
????????print(">>>?读取网站地图文件成功!")
????????urls=re.findall(r'<loc>(.+?)</loc>',xml_data,re.S)
????????print(urls)
????????print(f">>>?共有网页链接数?:{len(urls)}?条!")
????????return?urls
考虑到大部分大佬哥的网站链接推送数量可不少,这里应用了线程池的技术,多线程推送网址,比较简单,复制粘贴即可完成!
示例代码
????def?main(self):
????????urls=self.get_url()
????????try:
????????????#?开4个?worker,没有参数时默认是?cpu?的核心数
????????????pool?=?ThreadPool()
????????????results?=?pool.map(self.api,urls)
????????????pool.close()
????????????pool.join()
????????????print(">>?采集所有链接百度推送完成!")
????????except?Exception?as?e:
????????????print(f'错误代码:{e}')
????????????print("Error:?unable?to?start?thread")
完整代码参考
#百度普通收录?资源提交?API提交
#微信:huguo00289
#?-*-?coding:?UTF-8?-*-
import?requests
import?json,re
from?multiprocessing.dummy?import?Pool?as?ThreadPool
class?Ts():
????def?__init__(self,site,token,path):
????????self.site=site
????????self.token=token
????????self.path=path
????def?api(self,url):
????????print(f">>>?正在向百度推送链接--?{url}?..")
????????post_url?=?f"http://data.zz.baidu测试数据/urls?site={self.site}&token={self.token}"
????????headers?=?{
????????????'User-Agent':?'curl/7.12.1',
????????????'Host':?'data.zz.baidu测试数据',
????????????'Content-Type':?'text/plain',
????????????'Content-Length':?'83',
????????}
????????response?=?requests.post(post_url,?headers=headers,?data=url)
????????req?=?response.text
????????if?"success"?in?req:
????????????print(f"恭喜,{url}?--?百度推送成功!")
????????????req_json?=?json.loads(req)
????????????print(f'当天剩余的可推送url条数:?{req_json["remain"]}')
????????else:
????????????print(f"{url}?--?百度推送失败!")
????????return?None
????def?get_url(self):
????????with?open(self.path,'r',encoding='utf-8')?as?f:
????????????xml_data=f.read()
????????print(">>>?读取网站地图文件成功!")
????????urls=re.findall(r'<loc>(.+?)</loc>',xml_data,re.S)
????????print(urls)
????????print(f">>>?共有网页链接数?:{len(urls)}?条!")
????????return?urls
????def?main(self):
????????urls=self.get_url()
????????try:
????????????#?开4个?worker,没有参数时默认是?cpu?的核心数
????????????pool?=?ThreadPool()
????????????results?=?pool.map(self.api,urls)
????????????pool.close()
????????????pool.join()
????????????print(">>?采集所有链接百度推送完成!")
????????except?Exception?as?e:
????????????print(f'错误代码:{e}')
????????????print("Error:?unable?to?start?thread")
if?__name__?==?'__main__':
????site="网站地址"
????token="秘钥"
????path=r"网站地图文件存储路径"
????spider=Ts(site,token,path)
????spider.main()
????
相关阅读:
百度主动推送工具汇总,Python POST工具实例源码
?? ? ?
微信公众号:二爷记
不定时分享python源码及工具
查看更多关于SEO工具脚本,Python百度普通收录API提交工具的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did126121