Python实现百度自动推送收录,并推送到微信!

Python 投稿 91700 0 评论

Python实现百度自动推送收录,并推送到微信!

首先网站得有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.feishuai.viparchives/python-flask-api-server-jiang.html
    # 如果不需要该功能,请删掉第37行的 post_message_wechat(text) 即可

    data = {
        'corpid': '*****',
        'corpsecret': '*****',
        'agentid': '*****',
        'text': text
    }
    r = requests.post('https://api.feishuai.vip/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

编程笔记 » Python实现百度自动推送收录,并推送到微信!

赞同 (124) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽