zoukankan      html  css  js  c++  java
  • 通过selenium进行博客备份

    1.安装selenium

    pip3 install selenium -i https://pypi.douban.com/simple
    

    2.下载chrome浏览器

    3.下载chrome浏览器驱动
    chrome浏览器驱动下载地址

    4.执行代码,保存博客

    from selenium import webdriver
    import time
    
    def get_title(wd):
        '''获取当前页的所有博文标题控件'''
        # 获取当前页的所有博文标题内容
        elements = wd.find_elements_by_class_name('postTitle')  
        titles = []  
        for i in elements:
            titles.append(i.text)
        # 从所有tag中选出是博文标题的tag
        elements_ = wd.find_elements_by_tag_name('span')  
        elements = []
        for i in elements_:
            if i.text in titles:
                elements.append(i) 
        return elements
    
    def save_page(wd):
        '''保存当前页面至程序根目录'''
        f = open(wd.title+'.html','wb')
        time.sleep(1.) # 保证浏览器响应成功后再进行下一步操作
        f.write(wd.page_source.encode()) 
        time.sleep(1.)
        print('写入成功')
        #关闭文件
        f.close()  
    
    def ergodic_article(wd):
        '''遍历当前页面的所有博文并保存'''
        elements = get_title(wd)
        num = len(elements)  # 当前页的博文数量
        for i in range(num):
            elements[i].click()
            print(i)
            save_page(wd)
            wd.back()
            elements = get_title(wd)
    
    def next_page(wd):
        '''翻到下一页'''
        elements = wd.find_elements_by_tag_name('a') 
        for i in elements:
            if i.text == '下一页':
                print('next page')
                i.click()
                return 0
        return 1
          
    def ergodic_catalog(wd):
        '''遍历博文目录的每一页,并保存每一页的所有博文'''
        wd.get('https://www.cnblogs.com/bill-h/')  # 打开博客首页
        while 1:
            ergodic_article(wd)
            t = next_page(wd)
            if t:
                return
    
    wd = webdriver.Chrome(r'D:Toolchromedriver.exe')  # 打开chrome驱动
    ergodic_catalog(wd)
    print('finish')
    

    参考资料:
    Python + Selenium Web自动化 全套教程 - 华为大叔7天带你入门
    白月黑羽教Python-自动化测试

  • 相关阅读:
    DHCP DHCPv6
    DHCPv6协议
    IPv6邻居发现协议
    CentOS下禁止防火墙
    centOS下更新yum源
    centOS下yum报错
    Flink+Kafka整合的实例
    Flink基本概念
    Ubuntu16.04下配置ssh免密登录
    Zookeeper+Kafka的单节点配置
  • 原文地址:https://www.cnblogs.com/bill-h/p/14433667.html
Copyright © 2011-2022 走看看