python教程

python每日自动批量推送URL到百度站长工具

精准像素 2021-09-19 人阅读

前言

由于2020.12.11日百度正式下线自动提交功能,很多小伙伴都无法自动推送URL到百度站长了。于是写了下面这个脚本,实现自动推送!

首先,咱们的网站得有sitemap,然后我们利用Python爬取sitemap上面的URL,然后批量提交到百度站长后台主动推送。并且把推送结果发送到站长微信!

实现过程

安装依赖

pip install requests

编写代码

import requests, re, json
def get_urls(sitemap_url):
# 爬取URL列表
r = requests.get(sitemap_url).text
s = re.findall(r'<loc>(.*)</loc>', r)
# 由于百度推送一次最多推送2000条,如果超过两千,就取最后2000条推送
print('已经成功爬取{0}条网址'.format(len(s)))
if len(s) > 2000:
s = s[-2000:]
urls = '\n'.join(s)
return urls
def post_message_wechat(text):
# 推送推送结果至管理员微信
# 请获取属于你的corpid、corpsecret、agentid,替换下面代码中的*****
# 请参考:https://www.htm.fun/archives/python-flask-api-server-jiang.html
# 如果不需要该功能,请删掉第37行的 post_message_wechat(text) 即可
data = {
'corpid': '*****',
'corpsecret': '*****',
'agentid': '*****',
'text': text
}
r = requests.post('https://api.htm.fun/api/Wechat/text/',data=data)
def post_url_baidu(baidu_api_url,sitemap_url):
# 进行推送到百度站长中心
headers = {'Content-Type': 'text/plain'}
urls = get_urls(sitemap_url)
s = requests.post(baidu_api_url, headers=headers, data=urls).content
s = json.loads(s)
if 'success' in s.keys():
text = '今日已成功提交{0}条推送到百度站长'.format(s['success'])
else:
text = '推送失败,请检查原因!'
post_message_wechat(text)
print(text)
if __name__ == '__main__':
# 将下方的baidu_api_url和sitemap_url换成你自己的URL即可!
post_url_baidu(baidu_api_url,sitemap_url)

以上就是全部代码啦。当然,如果你每天都要推送的话,建议你把脚本挂到服务器上面,每天定时执行即可,解放双手!

设置宝塔自动执行(请举一反三)

我们保存好脚本后,把脚本上传到宝塔面板。如:baidu_post_url.py,上传到/www/wwwroot/script

然后进入首页/计划任务添加每日计划,Shell脚本:

python /www/wwwroot/script/baidu_post_url.py

然后等着每日自动推送就可以啦!

相关推荐
  • 自动推送
  • 百度URL即时批量主动推送工具V2.3测试版
    百度URL即时批量主动推送工具V2.3测试版

    软件介绍百度URL即时批量主动推送工具,百度爬虫页面自动繁殖程序V2.3测试版。工具截图软件蜘蛛爬取站内URL链接(软件蜘蛛非深度爬取),非站内链接自动过滤。软件根会据日志判定,以防止浪费URL配额数...

    营销软件 8 1周前
  • 百度站长工具恢复自动推送功能
    百度站长工具恢复自动推送功能

    百度自动推送功能可以自动推送链接到百度站长工具平台,可以快速提高网站收录。只需去百度站长工具复杂一段JS到网站,就可以使用,无需开发成本。精准像素今天看到百度通知主动推送功能又恢复上线了,大...

    网站优化 177 1年前
  • 帝国CMS二次开发百度主动推送功能教程

    补充一点服务器要支持CURL权限方法一:发布一个文章推送一个文章修改文件:\e\class\hinfofun.php大概在316行//同时发布 $copyclassid=$add[copyclassid]; $cpcount=count($copyclassid); if($cpcount) { ...

    帝国cms教程 310 6年前