溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python如何實(shí)現(xiàn)推送百度鏈接

發(fā)布時(shí)間:2021-12-27 10:07:44 來源:億速云 閱讀:146 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Python如何實(shí)現(xiàn)推送百度鏈接,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

通過代碼實(shí)現(xiàn)抓取個(gè)人博客中某一頁指定文章鏈接,并批量將該鏈接推送到百度站長平臺(tái),起到快速收錄的目的。 

import sys
import requests
from bs4 import BeautifulSoup

# 推送百度爬蟲
def push_page(url):
    headers = {
        'User-Agent': 'curl/7.12.1',
        'Host': 'data.zz.baidu.com',
        'Content-Type': 'text/plain',
        'Content-Length': '83'
    }
    urls = "http://data.zz.baidu.com/urls?site=https://www.lyshark.com&token=xxxxxxx"
    try:
        html = requests.post(urls, headers=headers, data=url, timeout=5).text
        push_status = eval(html)['success']
        if push_status == 1:
            return 1
        else:
            return 0
    except:
        return 0

# 獲取路徑
def get_page(page):
    html = requests.get(page,timeout=5).text
    try:
        bs = BeautifulSoup(html,"html.parser")
        ret = bs.select('div[class="container"] div[class="row"] h3[class="post-title"] a')
        for item in ret:
            push_url = item.get('href')
            push_ref = push_page(push_url)
            print("推送: {} --> 狀態(tài): {}".format(push_url,push_ref))
        return 1
    except:
        return 0

if __name__ == "__main__":
    arg = sys.argv
    get_page(arg[1])

補(bǔ)充

百度目前提供自動(dòng)提交鏈接和手動(dòng)提交鏈接兩種方式,其中自動(dòng)提交又分為主動(dòng)推送、自動(dòng)推送和sitemap三種形式,按百度的說法,主動(dòng)推送的效果最好,百度站長平臺(tái)后臺(tái)也提供了curl、php、ruby的推送示例代碼但沒有提供python代碼,網(wǎng)上很少有現(xiàn)成的python版本主動(dòng)推送代碼(僅有的也有點(diǎn)小問題,需要修改一下),現(xiàn)將目前我正在使用的主動(dòng)推送python代碼貼出。

#encoding:utf-8

import httplib

def tuisong():

    filecontents = open( "urls.txt", "r" ).read()                 //urls.txt為需要推送的URL文件,每行一個(gè)

    url = "/urls?site=域名(不帶http)&token=令牌(在自己的百度站長平臺(tái)后臺(tái)可以看到)"

    conn = httplib.HTTPConnection('data.zz.baidu.com')

    conn.request(method="POST", url=url, body=filecontents)

    response = conn.getresponse()

    baiduresult = response.read()

    conn.close()

    return baiduresult

 

if __name__=="__main__":

    ts=tuisong()

    print ts

推送后會(huì)返回相關(guān)的代碼!

下面是我用的requests實(shí)現(xiàn)的,更簡(jiǎn)潔:

import requests

def tuisong(self):       
        url = "/urls?site=域名(不帶http)&token=令牌(在自己的百度站長平臺(tái)后臺(tái)可以看到)"        
        filecontents = {'file': open('urls.txt', 'rb')}  #urls.txt為需要推送的URL文件,每行一個(gè)        
        r=requests.post("http://data.zz.baidu.com"+url, files=filecontents)
        baiduresult ="推送成功,結(jié)果為%s \n" %(r.text)       
        return baiduresult
        
if __name__=="__main__":

    ts=tuisong()

    print(ts)

關(guān)于“Python如何實(shí)現(xiàn)推送百度鏈接”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI