今天在 百度搜索资源平台 提交普通收录的时候,尝试了一下API提交。
推送示例中 只有curl推送 | post推送 | php推送 | ruby推送 ,我尝试了下curl推送。

curl实现方法

1.首先需要将所有网站的内链归拢到urls.txt
我这里借助了<<2KB网站链接生成助手>> 可以在线生成
地图: sitemap.xml
链接: url.txt
死链: deathurl.txt
外链: externalurl.txt
直接将url.txt下载下来重命名为urls.txt

2.按照规则

curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.com/urls?site=blog.lcnwys.com&token=***********"`

返回{"remain":#$#%$#,"success":$%$@#%$#@}表示上传成功
返回{"error":401,"message":"token is not valid"}表示失败

其他几种方式我不太会所以选择了pytho来推送,代码如下:

import requests
import re

def push_urls(url, urls):
    '''根据百度站长提供的API推送链接'''
    headers = {
        'User-Agent': 'curl/7.12.1',
        'Host': 'data.zz.baidu.com',
        'Content - Type': 'text / plain',
        'Content - Length': '83'
    }
    try:
        html = requests.post(url, headers=headers, data=urls, timeout=5).text
        return html
    except:
        return "{'error':404,'message':'请求超时,接口地址错误!'}"

def get_urls(url):
    '''提取网站sitemap中所有链接,参数必须是sitemap的链接'''
    try:
        html = requests.get(url,timeout=5).text
    except Exception as e:
        print(e)
        return 'miss'
    else:
        urls = re.findall('<loc>(.*?)</loc>', html)
        if len(urls) == 0:
            return 'miss'
        return '\n'.join(urls)


if __name__ == '__main__':
    web_sites = [你的网站列表,多个逗号分开]
    for site in web_sites:
        url = 'http://data.zz.baidu.com/urls?site={}&token=1234567899'.format(site)
        urls = get_urls(你的sitamap地址)
        # print(urls)
        if urls == 'miss':
            print('获取urls失败,请核对你的sitemap地址')
            continue
        else:
            print(url)
            message = push_urls(url, urls)
            print(message)
            # print('success')

这里我同样用到了<<2KB网站链接生成助手>>生成的sitemap.xml传输到网站目录下。
其实我最开始用的是sitemap提交,为什么又要尝试API提交,原因就在于百度普通收录的使用说明中提到

2.API提交和手动提交共享配额,每日至多提交10万条有价值的内容,sitemap提交配额不与其他方式共享,具体配额以站点页面显示数据为准,提交内容会进入百度搜索统一管理。

说的是配额的问题,不过居然有这样的区分那就都上传!