百度收录问题一直是不少渣渣头痛的问题,而官方其实提供了普通收录和快速收录这样的接口,直接调用官方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://www.haodehen.cn/did126121