Python 实现向百度推送链接

本文介绍了如何使用Python通过百度站长平台的API接口批量推送网址,以加快百度搜索引擎对网站内容的收录。首先,登录百度站长平台获取推送token,然后使用requests库发送POST请求,结合BeautifulSoup解析网页获取链接,最后实现自动化批量推送功能。

向百度主动提交网址的方式有很多,可以通过API接口提交,可以通过sitemap提交,也可以逐条手动提交,接下来将带大家使用python实现API接口提交,从而实现批量推送百度链接的功能。

当想要将网址主动提交给百度搜索引擎,有几种常用的方式可以实现:

  1. API接口提交:百度提供了站长平台接口,可以使用该接口将网址批量推送给百度。你可以使用Python编程语言通过HTTP POST请求将链接提交给百度的API接口。API接口的使用需要使用有效的推送token,该token在百度站长平台上生成。

  2. Sitemap提交:Sitemap是一个包含网站所有URL的XML文件。通过在网站的根目录下放置一个sitemap.xml文件,其中包含所有需要百度搜索引擎索引的URL,然后将该Sitemap提交给百度搜索引擎。百度会定期抓取Sitemap并索引其中的URL。

  3. 逐条手动提交:这是一种相对繁琐的方式,但也是可行的。可以使用百度站长平台的手动提交功能,逐个输入网址并提交给百度搜索引擎。

使用API接口提交可以实现批量推送百度链接,相比手动逐条提交更为高效和方便。通过编程方式,你可以自动将链接提交给百度,省去手动提交的麻烦。

首先需要登录到百度站长平台,并在后台获取到如下图所示的调用链接;

有了这个链接之后,就可以通过使用requests库模拟curl的方式向该链接推送站点信息了,通过代码实现抓取个人博客中某一页指定文章链接,并批量将该链接推送到百度站长平台,起到快速收录的目的。

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=MpHvVKjbs10XqaW"
    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])

上述功能只能推送一条,我们可以通过bs4解析所有的网页链接,并主动推送,如下所示;

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-t',
        'Content-Length': '83'
    }
    urls = "http://data.zz.baidu.com/urls?site=https://www.lyshark.com&token=C5pA6XTWlCxdCwB"
    try:
        html = requests.post(urls, headers=headers, data=url, timeout=5).text
        push_status = eval(html)['success']
        if push_status == 1:
            print("推送页面: {} 推送状态: {}".format(url,push_status))
            return 1
        else:
            print("推送页面: {} 推送状态: {}".format(url, push_status))
            return 0
    except:
        return 0

# 获取路径
def get_page(page):
    push_url_list = []
    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')
            print("提取链接: {}".format(push_url))
            push_url_list.append(push_url)
        return push_url_list
    except:
        return 0

# 生成所有页面链接
def create_page(start,end):
    page_list = []
    for ea in range(start,end+1):
        page = f"https://www.lyshark.com/page/{ea}/"
        print("创建页面链接: {}".format(page))
        page_list.append(page)
    return page_list

if __name__ == "__main__":
    while True:
        push_url = []
        # 生成页面目录
        page = create_page(1,15)
        for each in page:
            # 输出每一个链接目录树
            ref = get_page(each)
            push_url.extend(ref)

        # 开始批量推送
        for url in push_url:
            push_page(url)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微软技术分享

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值