python自动提交到百度,解析sitemap.xml自动提交,网站干货,赶紧收藏

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: python自动提交到百度,解析sitemap.xml自动提交,网站干货,赶紧收藏,小站http://meishih.com已经尝试过了
import json  
import os  
from time import sleep  
from urllib import parse  
import schedule  
import time  
import requests  
import re  
  
  
class Pusher(object):  
    def __init__(self):  
        print('init_')  
  
    def getSitemapIndex(self, sitemapIndexUrl):  
        print('getSitemapIndex:' + sitemapIndexUrl)  
  
        result = requests.get(sitemapIndexUrl)  
        print(result)  
        # print(result.content)  
        sitemapUrls = re.findall('<loc>(.*?)</loc>', result.content.decode('utf-8'), re.S)  
        print(sitemapUrls)  
        return sitemapUrls  
  
    def getSitemap(self, sitemapUrl):  
        print("getSitemap:" + sitemapUrl)  
        result = requests.get(sitemapUrl)  
        self.urls = re.findall('<loc>(.*?)</loc>', result.content.decode('utf-8'), re.S)  
        print(self.urls)  
  
    def postBaidu(self):  
        print("postBaidu:=================================")  
        header_baidu = {  
            "User-Agent": "curl/7.12.1",  
            "Host": "data.zz.baidu.com",  
            "Content-Type": "text/plain",  
            "Content-Length": "83"  
        }  
  
        file = open('push_baidu.txt', 'a+')  
        file.seek(0, 0)  # 游标移动到第一行,继续读,否则读取到的是空  
  
        content = file.read()  
        # self.f.close()  
        print("content:" + content)  
  
        for url in self.urls:  
  
            if url in content:  
                print("已经推送过:" + url)  
                pass  
            else:  
                try:  
                    result = requests.post(push_baidu, data=url, headers=header_baidu)  
                    print(url + result.content.decode('utf-8'))  
                    if '"success":1' in result.content.decode('utf-8'):  
                        file.write(url + '\n')  
                        file.flush()  
  
                    if '{"remain":0' in result.content.decode('utf-8'):  
                        break  
                # break  
                except Exception as e:  
                    print(e)  
                sleep(1)  
        file.close()  
  
    def postShenma(self):  
        print("postShenma:=================================")  
        header_baidu = {  
            "User-Agent": "curl/7.12.1",  
            "Host": "data.zhanzhang.sm.cn",  
            "Content-Type": "text/plain"  
        }  
  
        file = open('push_shenma.txt', 'a+')  
        file.seek(0, 0)  # 游标移动到第一行,继续读,否则读取到的是空  
  
        content = file.read()  
        # self.f.close()  
        print("content:" + content)  
  
        data = ''  
        for url in self.urls:  
            if url in content:  
                print("已经推送过:" + url)  
                pass  
            else:  
                data = data + url + '\n'  
        try:  
            result = requests.post(push_shenma, data=data, headers=header_baidu)  
            print("url:" + url)  
            print("status_code:" + str(result.status_code))  
            print("content:" + result.content.decode('utf-8'))  
  
            if str(result.status_code) == "200":  
                content = json.loads(result.content.decode('utf-8'))  
                print("returnCode " + str(content['returnCode']))  
                if str(content['returnCode']) == "200":  
                    file.write(data + '\n')  
                    file.flush()  
        except Exception as e:  
            print(e)  
            sleep(1)  
        file.close()  
  
    def postSougou(self):  
        print("postSougou:=================================")  
        header_baidu = {  
            "User-Agent": "Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.15",  
            "Host": "sogou.com",  
            "Content-Type": "application/x-www-form-urlencoded"  
        }  
  
        file = open('push_sogou.txt', 'a+')  
        file.seek(0, 0)  # 游标移动到第一行,继续读,否则读取到的是空  
  
        content = file.read()  
        # self.f.close()  
        print("content:" + content)  
  
        for url in self.urls:  
            if url in content:  
                print("已经推送过:" + url)  
                pass  
            else:  
                try:  
                    result = requests.post(push_sogou, data={"source": "1", "site_type": "1",  
                                                             "Shoulu": {"webAdr": url, "email": "932888148@qq.com",  
                                                                        "reason": "网站收录不正常,恳请收录!"}},  
                                           headers=header_baidu)  
                    print(url + result.content.decode('utf-8'))  
                except Exception as e:  
                    print(e)  
                sleep(1)  
        file.close()  
  
    def get360Token(self, url, key):  
        n = list(url)  
        n.reverse()  
        r = list(key)  
        i = []  
        # for ($s=0, $o=16;$s < $o;$s++)  
        for s in range(0, 16):  
            if n[s] is None:  
                i.append(r[s])  
            else:  
                i.append(r[s] + n[s])  
        return ''.join(i)  
  
     
    def run(self, sitemapUrl):  
        self.getSitemap(sitemapUrl)  
        self.postBaidu()  
  
urlSitemap = ''  # Your sitemap url, like 'http://blog.kxrr.us/index.php/sitemap'  
urlPost = ''  # Your Baidu API, like 'http://data.zz.baidu.com/urls?site=blog.kxrr.us&token=xxxxxxxxxxxx'  
  
push_baidu = 'http://data.zz.baidu.com/urls?site=meishih.com&token='  
  
  
# 定义你要周期运行的函数  
def job():  
    print("I'm working...")  
    pusher = Pusher()  
    sitemapUrls = pusher.getSitemapIndex("http://meishih.com/sitemap_index.xml")  
    for sitemapUrl in sitemapUrls:  
        pusher.run(sitemapUrl)  
  
  
schedule.every().day.at("17:32").do(job)  # 每天在 10:30 时间点运行 job 函数  
  
if __name__ == '__main__':  
    # while True:  
    #     schedule.run_pending()  # 运行所有可以运行的任务  
    #     time.sleep(10)  
    job()  
 # pusher = Pusher()  
    # pusher.postBingQuota()  
    # pusher.getSitemapIndex('http://[meishi](https://www.meishih.com)h.com/[sitemap](https://www.meishih.com/sitemap.html).xml')  
    # 

   
相关文章
|
1天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
7天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
3天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
11天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
3天前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
在网络数据的海洋中,网络爬虫遵循HTTP协议,穿梭于互联网各处,收集宝贵信息。本文将从零开始,使用Python的requests库,深入解析HTTP协议,助你构建自己的网络爬虫帝国。首先介绍HTTP协议基础,包括请求与响应结构;然后详细介绍requests库的安装与使用,演示如何发送GET和POST请求并处理响应;最后概述爬虫构建流程及挑战,帮助你逐步掌握核心技术,畅游数据海洋。
18 3
|
9天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
10天前
|
机器学习/深度学习 人工智能 TensorFlow
深入骨髓的解析:Python中神经网络如何学会‘思考’,解锁AI新纪元
【9月更文挑战第11天】随着科技的发展,人工智能(AI)成为推动社会进步的关键力量,而神经网络作为AI的核心,正以其强大的学习和模式识别能力开启AI新纪元。本文将探讨Python中神经网络的工作原理,并通过示例代码展示其“思考”过程。神经网络模仿生物神经系统,通过加权连接传递信息并优化输出。Python凭借其丰富的科学计算库如TensorFlow和PyTorch,成为神经网络研究的首选语言。
12 1
|
13天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
5天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
Web App开发 应用服务中间件 开发工具
python 第一个网站应用
python 第一个网站应用
10775 0