自动采集推送(个人用Django开发的博客已上线,主动推送每天最多可以推送 )
优采云 发布时间: 2021-09-12 10:11自动采集推送(个人用Django开发的博客已上线,主动推送每天最多可以推送
)
Django开发的个人博客上线,欢迎访问:
在做网站的过程中,网站制作容易,网站推广却难。第一步是要求百度、谷歌、360、搜狗等各大搜索引擎。 网站进行收录,在链接提交方面,其实各大网站斗都差不多,基本上都有sitemap提交,不过百度网站收录也提供了主动推送和自动推送除了站点地图提交推送。
所谓的自动推送,其实是一种被动技能。每个网站上都写了一个特定的JS代码。当有人访问一个网页时,JS代码会将当前不是收录的网页推送到百度服务器。 ,完成收录,脚本如下:
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();
将此JS代码复制到每个网页即可实现自动推送功能。
主动推送更有趣。目前百度仅提供curl、php、ruby程序示例,没有Python版本。主动推送每天最多可推送 100,000 个网址
根据百度提供的资料,python版本其实还是比较容易写的。
先登录百度搜索资源平台,然后在链接提交中找到自动推送界面,比如我的网站推送界面:
接下来使用这个push接口文件来编写python程序。此外,您需要准备一个站点地图文件。 网站all URL 从站点地图中读取。当然,如果有网址列表,也可以直接从网址列表中读取。
# base on python 3.7
import requests
import re
import time
def push_urls(urls):
url = "你的百度推送接口"
headers = {
'User-Agent': 'curl/7.12.1',
'Host': 'data.zz.baidu.com',
'Content - Type': 'text / plain',
'Content - Length': '83',
'charset':'gbk',
}
try:
response = requests.post(url, headers=headers, data=urls, timeout=5).text
return response
except Exception as e:
print(e)
def auto_push_urls():
remain_push_count = 100000
push_count = 0
start_number = 608006
actual_push_url = 0
# open a sitemap
try:
with open("sitemap.xml", "r", encoding="utf-8") as f:
source_links = f.readlines()
except Exception as e:
print(e)
else:
for link in source_links[start_number]:
url = re.findall('(.*?)', link)
if url !=[]:
target_url = url[0].encode("utf-8")
response = push_urls(target_url)
# print(url[0])
print(f"psuh a url:{target_url}, {response}")
push_count += 1
actual_push_url += 1
if push_count > remain_push_count:
break
return actual_push_url
if __name__ =="__main__":
print("start pushing urls ...")
pushed_url_number = auto_push_urls()
print(f"complete pushing urls: {pushed_url_number} ...")
推送成功后,界面返回字典列表,包括剩余URL数“remain”:99999,成功推送数:“success”:1
{"remain":99999,"success":1}
如果失败,返回具体的失败原因: