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

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

   
相关文章
|
10天前
|
数据采集 JSON API
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
|
8天前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
58 5
|
21天前
|
存储 缓存 Python
Python中的装饰器深度解析与实践
在Python的世界里,装饰器如同一位神秘的魔法师,它拥有改变函数行为的能力。本文将揭开装饰器的神秘面纱,通过直观的代码示例,引导你理解其工作原理,并掌握如何在实际项目中灵活运用这一强大的工具。从基础到进阶,我们将一起探索装饰器的魅力所在。
|
25天前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
34 7
|
27天前
|
XML 数据采集 数据格式
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href=&#39;example.com&#39;]` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。
|
27天前
|
测试技术 开发者 Python
使用Python解析和分析源代码
本文介绍了如何使用Python的`ast`模块解析和分析Python源代码,包括安装准备、解析源代码、分析抽象语法树(AST)等步骤,展示了通过自定义`NodeVisitor`类遍历AST并提取信息的方法,为代码质量提升和自动化工具开发提供基础。
43 8
|
1月前
|
数据可视化 图形学 Python
在圆的外面画一个正方形:Python实现与技术解析
本文介绍了如何使用Python的`matplotlib`库绘制一个圆,并在其外部绘制一个正方形。通过计算正方形的边长和顶点坐标,实现了圆和正方形的精确对齐。代码示例详细展示了绘制过程,适合初学者学习和实践。
44 9
|
28天前
|
XML JSON API
如何使用Python将字典转换为XML
本文介绍了如何使用Python中的`xml.etree.ElementTree`库将字典数据结构转换为XML格式。通过定义递归函数处理字典到XML元素的转换,生成符合标准的XML文档,适用于与旧系统交互或需支持复杂文档结构的场景。示例代码展示了将一个简单字典转换为XML的具体实现过程。
18 1
|
1月前
|
存储 缓存 开发者
Python编程中的装饰器深度解析
本文将深入探讨Python语言的装饰器概念,通过实际代码示例展示如何创建和应用装饰器,并分析其背后的原理和作用。我们将从基础定义出发,逐步引导读者理解装饰器的高级用法,包括带参数的装饰器、多层装饰器以及装饰器与类方法的结合使用。文章旨在帮助初学者掌握这一强大工具,同时为有经验的开发者提供更深层次的理解和应用。
36 7
|
1月前
|
数据采集 JSON 数据格式
深入解析:使用Python爬取Bilibili视频
本文介绍了如何使用Python编写脚本自动化下载Bilibili视频。通过requests等库获取视频和音频URL,使用ffmpeg合并音视频文件,最终实现高效下载。注意遵守网站爬虫政策和法律法规。
266 4

热门文章

最新文章