自动采集推送(利用百度主动推送的API,批量推送网站链接到百度)
优采云 发布时间: 2021-12-08 04:00自动采集推送(利用百度主动推送的API,批量推送网站链接到百度)
网站是建起来的,但是为了让更多的人看到你网站的文章,你还需要使用搜索引擎。决定网站的呈现量。中国的主要搜索门户是百度。此外,360搜索和搜狗搜索也分流了部分流量。本文将介绍利用百度主动推送功能批量推送网站链接到百度的API。
百度链接提交方法
百度站长平台提供了多种链接提交方式,站长可以通过这些方式提交网站链接,方便百度更快收录网站。
首先我们从一张图来简单的看一下百度的提交方式:
自动提交
有三种不同的自动提交方式:
主动推送(实时):这种方式就是本文提到的推送链接方式。调用百度提供的链接提交API批量推送链接。这种推送方式是百度推荐的,据说是最有效的。自动推送:自动推送是百度搜索资源平台推出的一款提高网站新网页发现速度的工具。安装一个自动推送JS代码的网页。当页面被访问时,页面URL会立即推送到百度。简单来说,就是把百度提供的push JS代码放在网站的每个网页中,然后只要有人浏览网页,就会自动将链接推送到百度给收录。站点地图:此方法是将网站的站点地图地址提交给百度。百度将从站点地图页面中提取URL,然后继续收录。因此,最好在建网站时创建站点地图页面。手动提交
手动提交其实有两种方式:
一般资料:在表格中手动输入网站的链接,然后点击按钮提交给百度收录。一次可以提交20个链接,提交次数没有限制。新站数据:新站保护数据推送通道共可提交300个链接,每天最多提交10个。此方法适用于新站点。每天提交的次数和提交的总数是有限的。新站推荐使用此方式先提交网站链接。使用主动推送(实时)百度主动推送工具
这是本网站提供的百度主动推送工具的网络版。您可以直接进入工具提交页面查看工具操作流程。这个方法主要是针对网站如果有新的链接需要及时提交使用百度的网址。
主动站点地图推送
这是本网站提供的Sitemap主动推送在线版。这个工具的原理是先使用爬虫技术提供网站站点地图页面中的所有链接,然后使用百度的主动推送API接口提交链接更适合新站点快速提交大量链接。具体用法可以直接到工具页面查看。
主动推送官方提供的python代码推送参数
官方POST提交方式的参数如下:
POST /urls?site=www.example.com&token=NpU0******** HTTP/1.1
User-Agent: curl/7.12.1
Host: data.zz.baidu.com
Content-Type: text/plain
Content-Length: 83
POST提交的data参数为字符串格式,即如果提取了大量的URL链接,则需要使用\n换行符将链接拼接成字符串提交。
源代码展示
Python代码如下:
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:
return 'miss'
else:
urls = re.findall('(.*?)', html)
return '\n'.join(urls)
代码解读
push_urls函数是一个请求函数,即调用百度主动推送API的函数。该函数接收 2 个参数。第一个参数是百度提供给每个网站的推送接口。这个需要自己做网站百度站长平台搜索@>;第二个参数是一个由链接组成的字符串。需要注意的是,如果连接数较多,则需要使用\n,这是一个换行符,将链接连接成一个字符串。
html = requests.post(url, headers=headers, data=urls, timeout=5).text
以上是Python POST请求方法。传入参数中的url为百度站长提供的网站的推送接口地址。headers就是上面提到的官方请求头参数,数据是通过链接拼接的。timeout是我设置为5秒的请求超时时间,因为考虑到提交的表单可能不符合网页请求的链接格式,以免出错。
get_urls 函数是一个提取链接的函数。该函数的作用是提取网站的sitemap页面中的所有链接,使用正则表达式提取。唯一需要传递的参数是网站的站点地图地址。
urls = re.findall('(.*?)', html)
以上是用于提取站点地图中链接的正则表达式。由于标准化站点地图页面的格式是固定的,正则表达式是一种常用的提取链接的方式。
一般的链接提交只需要调用push_urls函数即可。如果要提交sitemap链接,需要调用get_urls函数提取链接,然后将链接连接成字符串传递给第一个函数进行提交。
总结:当然,百度站长工具官方也说明,无论采用哪种方式提交链接,都是一个让你的网站链接增加到收录的机会。这并不意味着该网站的链接将是 收录。@收录。所以,老实说,先丰富网站的内容吧。有了好的内容,相信搜索引擎会给你足够的机会展示网站。