调用官方api接口,大力出奇迹,你需要相信!

优采云 发布时间: 2021-06-21 06:06

  调用官方api接口,大力出奇迹,你需要相信!

  百度收录的问题一直是很多渣男头疼的问题,但是官网居然提供了普通的收录和fast收录接口,直接调用官方api接口,大力创造奇迹,你需要相信,虽然你是seo,但如果你有排名,我就输了。没有收录,怎么可能?你没有给你留下主页网址吗?之前写过熊掌号api URL提交,可惜被取消了,不知道能不能用。

  

  其实调用官方的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.com/urls?site={site}&token={token}"

    headers = {

        'User-Agent': 'curl/7.12.1',

        'Host': 'data.zz.baidu.com',

        '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} -- 百度推送失败!")

  继续优化完善吧!

  首先网站Map,众所周知,sitemap.xml格式文件收录网站All 网站。我们可以使用它向搜索引擎提交网址。同时,我们也可以为之努力。我这里使用的网站地图文件是Tiger Map制作的。

  从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'(.+?)',xml_data,re.S)

        print(urls)

        print(f">>> 共有网页链接数 :{len(urls)} 条!")

        return urls

  考虑到大部分大佬推送的网站链接数量比较多,这里应用了线程池技术,多线程的URL推送比较简单,复制粘贴就行!

  示例代码

      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.com/urls?site={self.site}&token={self.token}"

        headers = {

            'User-Agent': 'curl/7.12.1',

            'Host': 'data.zz.baidu.com',

            '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'(.+?)',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()

    

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线