利用python向百度推送網站連結

Chuzilun 發表於 2021-03-25

做網站的人一般都很關注網站的收錄量,而收錄量就需要蜘蛛去爬取,而爬取則需要去提交。
而百度提供了api提交的方法。
/——————————————————-
用python進行提交的話,我選擇的是post提交。

POST /urls?site=“自己網站的token”         # 這裡是site後面那一段帶網站的,並非是整個介面呼叫地址。
User-Agent: curl/7.12.1
Host: data.zz.baidu.com
Content-Type: text/plain
Content-Length: 83

這個第一行的token請換成自己的。

http://www.example.com/1.html
http://www.example.com/2.html

這個是提交示例,也就是說一個一行。

{
    "remain":99998,
    "success":2,
    "not_same_site":[],
    "not_valid":[]
}

這個是返回資訊,那麼如何去寫就一目瞭然了。

import requests
import re
import time
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36,',
    'Host': 'data.zz.baidu.com',
    'Content-Length':'83'
}
print("*"*30)
print('links.txt示例:\nhttps://xxxxx.html\nhttps://xxxxx.html\nhttps://xxxxx.html\nhttps://xxxxx.html')
print("*"*30)
print('api示例:\nhttp://data.zz.baidu.com/urls?site=xxxxxxxxxxx')
push_num = 1
while push_num < 9999:
    if push_num == 1:
        answer = input("請問你是否已經將連結填入links.txt,api填入api.txt中呢,如果是則回答1\n")
    if answer == '1':
        try:
            with open('links.txt', 'r') as links:
                links = links.read()
        except FileNotFoundError:
            print("links.txt檔案不存在")
        try:
            with open('api.txt', 'r') as api:
                api = api.read()
        except FileNotFoundError:
            print("links.txt檔案不存在")

        def thinklink(links, api):
            if links == '':
                print("links.txt檔案為空")
            else:
                if api == '':
                    print('api.txt為空')
                else:
                    try:
                        html_result = requests.post(api, headers=headers, timeout=5, data=links).text
                        return html_result
                    except:
                        return print("失敗")
        push_result = thinklink(links, api)
        print('提交完成:'+push_result)
        surplus_push_num = re.findall('"remain":(.*),"', push_result)
        surplus_push_num = surplus_push_num.pop()
        print('剩餘' + surplus_push_num + '次提交機會')
    else:
        print("請將內容填充!5秒鐘後自動關閉")
        time.sleep(5)
        break
    print('*'*30)
    new_answer = input("是否還需要提交,如果是的話請先去更改一下相應檔案,如果是請輸入1,如果否請輸入0\n")
    if new_answer == '0':
        print("提交結束,5秒鐘後自動關閉")
        time.sleep(5)
        break
    push_num += 1
    print("現在開始第"+str(push_num)+'次提交')

需要在python檔案新建兩個txt檔案,分別放token和連結。
然後其實就可以直接雙擊開啟python檔案進行提交了。如果有什麼疑問可以直接問。
利用python向百度推送網站連結

本作品採用《CC 協議》,轉載必須註明作者和本文連結