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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 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')  
    # 

   
相关文章
|
9天前
|
算法 Python
Python 大神修炼手册:图的深度优先&广度优先遍历,深入骨髓的解析
在 Python 编程中,掌握图的深度优先遍历(DFS)和广度优先遍历(BFS)是进阶的关键。这两种算法不仅理论重要,还能解决实际问题。本文介绍了图的基本概念、邻接表表示方法,并给出了 DFS 和 BFS 的 Python 实现代码示例,帮助读者深入理解并应用这些算法。
20 2
|
18天前
|
测试技术 开发者 Python
深入浅出:Python中的装饰器解析与应用###
【10月更文挑战第22天】 本文将带你走进Python装饰器的世界,揭示其背后的魔法。我们将一起探索装饰器的定义、工作原理、常见用法以及如何自定义装饰器,让你的代码更加简洁高效。无论你是Python新手还是有一定经验的开发者,相信这篇文章都能为你带来新的启发和收获。 ###
12 1
|
18天前
|
设计模式 测试技术 开发者
Python中的装饰器深度解析
【10月更文挑战第24天】在Python的世界中,装饰器是那些能够为函数或类“添彩”的魔法工具。本文将带你深入理解装饰器的概念、工作原理以及如何自定义装饰器,让你的代码更加优雅和高效。
|
21天前
|
监控 网络协议 应用服务中间件
深入解析:如何确定网站使用的端口号
【10月更文挑战第21天】 在网络通信中,端口号是识别特定服务的关键。一个IP地址可以有多个端口,每个端口可能运行着不同的服务。当我们在浏览器地址栏输入一个网址时,实际上是通过特定的端口与服务器进行通信。本文将探讨如何确定一个网站使用的端口号,以及端口号在网络通信中的作用。
26 4
|
28天前
|
XML 前端开发 数据格式
Beautiful Soup 解析html | python小知识
在数据驱动的时代,网页数据是非常宝贵的资源。很多时候我们需要从网页上提取数据,进行分析和处理。Beautiful Soup 是一个非常流行的 Python 库,可以帮助我们轻松地解析和提取网页中的数据。本文将详细介绍 Beautiful Soup 的基础知识和常用操作,帮助初学者快速入门和精通这一强大的工具。【10月更文挑战第11天】
56 2
|
28天前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
1月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
|
30天前
|
域名解析 缓存 网络协议
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?