Python实现推送百度链接的示例代码

通过代码实现抓取个人博客中某一页指定文章链接,并批量将该链接推送到百度站长平台,起到快速收录的目的。 

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"] h2[class="post-title"] a')
        for item in ret:
            push_url = item.get('href')
            push_ref = push_page(push_url)
            print("推送: {} --> 状态: {}".format(push_url,push_ref))
        return 1
    except:
        return 0

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

补充

在百度的站长平台上介绍了链接提交方法,目前有这四种:

主动推送:最快的提交方式,推荐将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。

自动推送:最为便捷的提交方式,将自动推送的JS代码部署在站点的每一个页面源代码中,部署代码的页面在每次被浏览时,链接会被自动推送给百度。可以与主动推送配合使用。

sitemap:将网站链接放到sitemap中,然后将sitemap的地址提交给百度。百度会周期性的抓取检查您提交的sitemap,对其中的链接进行处理,但收录速度慢于主动推送。

手动提交:操作起来麻烦。

为了让网站最新的内容更加及时的提交给百度,使用主动推送就很必要,百度给的例子中没有 Python 的。根据 Google 了一下,还真找到了不错的脚本,分享收藏一下。

以下脚本使用 Python3,未在 Python2 环境下测试过。

Python实现推送百度链接的示例代码

读取本地生成的 sitemap.txt 文件

Python实现推送百度链接的示例代码

另外,可尝试以下脚本。

Python实现推送百度链接的示例代码