工具模块
python 3.8requests
pycharm 2019 教育版re
Windowspyemail

import requests
import re
import smtplib
from email.mime.text import MIMEText

#每次运行将text中的地址全部清除防止重新运行程序添加重复的链接
def clean_text():
    with open(r'A:\桌面\url.txt','w')as k:
        k.write('')
    print('链接清除完成')


def wash_urls(url):
    url = url
    wash = requests.get(url).text
    pat = '<li id="menu-item-(.*?)" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-(.*?)"><a href="(.*?)">(.*?)</a></li>'

    wash_urls = re.findall(pat,wash)
    
    #写入首页链接
    with open(r'A:\桌面\url.txt', 'a')as h:
        h.write(url + '\n')
        print(url,'>>>>>>>>>>写入完成')
        print('----------------------------------')

    #清洗分类链接地址并保存
    for i in wash_urls:
        title_urls = i[2]
        with open(r'A:\桌面\url.txt', 'a')as g:
            g.write(title_urls + '\n')
            print(title_urls,'>>>>>>>>>>写入完成')
            print('----------------------------------')

        view_title_urls = requests.get(title_urls).text

        article_url_pat = '<h2 class="entry-title"><a target="_blank" href="(.*?)" title="'
        article_urls = re.findall(article_url_pat,view_title_urls)

        for j in article_urls:
        #写入分类链接
            with open(r'A:\桌面\url.txt','a')as f:
                f.write(j+'\n')
                print(title_urls, '>>>>>>>>>>写入完成')
                print('----------------------------------')

    pushurls()

def pushurls():
    while True:
        print('''
            =========================
            +→   开始推送所有链接  ←+
            =========================
        ''')
        headers = {
            'User-Agent': 'curl / 7.12.1',
            'Host': 'data.zz.baidu.com',
            'Content-Type': 'text / plain',
            'Content-Length': '83'
        }

        url = "http://data.zz.baidu.com/urls?site=https://www.iscrooge.cn&token=FnxH37JV8N10W8Ir" #% (domain, token)  # 接口调用地址 在站长平台获取,这里替换成自己的

        filecontents = {'file': open(r'A:\桌面\url.txt', 'r')}  # urls.txt为需要推送的URL文件,每行一个
        print(filecontents)
        r = requests.post(url, files=filecontents,headers=headers)
        print(r.text)
        baiduresult = u"推送成功,结果为:%s \n" % (r.text)
        print(baiduresult)
        
        #做一个简单判断,推送完成之后跳出死循环
        if 'error' == r.text[2:7]:
            print('''
                        =========================
                        +→    任务推送已完成    ←+
                        =========================
                    ''')
            break

def send_email(message):
    msg_from = 'xxxxxxxxxx@qq.com'  # 发送方邮件地址,这里修改成自己的
    passwd = 'xxxxxxxxxxx'  # 发送方邮件授权密码(非邮箱登录密码),这里改成自己的
    smtp = 'smtp.qq.com'  # 发件邮箱的smtp地址
    subject = "A email of python seo"  # 邮件的标题
    content = message  # 邮件的内容,这里内容为html页面
    msg_to = 'xxxxxxxxxx@qq.com'  # 收件邮箱地址,这里改成自己的

    msg = MIMEText(content,'html','utf-8')
    msg['Sbuject'] = subject
    msg['From'] = msg_from
    msg['To']  = msg_to

    mail = smtplib.SMTP_SSL(smtp,465)
    mail.login(msg_from,passwd)
    mail.sendmail(msg_from,msg_to,msg.as_string())

    print('邮件已发送,程序结束')

if __name__ == '__main__':
    clean_text()
    url = input('输入ripro首页域名http或https开头:')
    wash_urls(url)
    
    #这里是发送的邮件内容,自行修改
    message = '<h3>所有seo推送工作已完成,通过邮件汇报</h3>'
    
    #如不需要邮件提醒功能将下面语句注释即可
    send_email(message)




扫描二维码,在手机上阅读!
最后修改:2020 年 05 月 23 日 08 : 50 AM
如果觉得我的文章对你有用,请随意赞赏