TypechoJoeTheme

Yuuuuuu

Python自动化实现主动推送站点到百度

在百度站长平台中,有各种方式可以提交自己的站点,以提高百度抓取自己网站的效率。此文章旨在使用主动推送(实时)提交到百度站长平台以提高网站曝光率。

此方法是使用curl推送,所以在这里找到你的示例命令(前提是你要成为站长)

然后我是在Linux上面执行的Python,其他平台此方法不适用
找个你喜欢的目录新建一个你喜欢的文件夹

文件结构

其实一共就两个文件,还有一个是自动生成的

  • curl.py #用来执行自动推送
  • geturl.py #抓取网站所有链接
  • urls.txt #保存抓取的网站链接

其中urls.txt是在执行 geturls.py 后自动生成,用以保存你要推送网站的所有链接

代码

curl.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 17/02/28 下午9:44
import os
import time
while True:
        ###### cmd = "你在百度站长中看到的curl推送示例命令"  ######
        cmd = "curl -H \'Content-Type:text/plain\' --data-binary @urls.txt \"http://data.zz.baidu.com/urls?site=note.coccoo.cc&token=xxxxxxxxxxxxxxx\""
        os.system(cmd)
        # 休息间隔为 1s 。。。哦不对,10s
        time.sleep(10)

geturl.py 抓取网页连接

这里的目的是抓取指定网站的所有链接,以每个一行的形式保存到txt文本中
import re
import requests
# 获取网页内容
r = requests.get('http://note.coccoo.cc')
data = r.text
# 利用正则查找所有连接
link_list =re.findall(r"(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')" ,data)
# 写入文本中
f = open("urls.txt",'wb')
for url in link_list:
    f.write(url+'\n')
f.close()

运行脚本

  1. 首先运行geturl.py获取网站链接库

    python geturl.py

然后当前文件夹就会多出了一个urls.txt的文本,就是你的网站链接库

  1. 让服务器自动帮你推送网站到百度

    nohup python curl.py &

到此,任务就结束了,只不过每次网站更新后,你都需要重新运行第一步的脚本获取最新链接库
所以我又把两个脚本合并一起,实时更新链接库并推送
代码在此
curl.zip
直接解压后上传到服务器,执行
nohup python curl.py &就可以了

百度站长工具每天推送url的次数是5,000,000次,所以你要根据你网站中链接数量修改时间间隔,以免次数超纲,建议每分钟提交网站数量在 3400 以内

注意事项:

  1. 如果出现报错

    Traceback (most recent call last):
      File "geturl.py", line 3, in <module>
     import requests
    ImportError: No module named requests

    这是没有安装requests模块导致的,直接执行pip install requests安装就可以了
    如果这一句报错pip: command not found...,那就是你没安装pip,直接百度下根据你的系统安装python-pip
    比如 我的是Centos,安装命令yum -y install python-pip
    然后直接再继续执行就ok了

赞(0)
评论 (0)