通过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
time.sleep(1.)
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:\Tool\chromedriver.exe') # 打开chrome驱动
ergodic_catalog(wd)
print('finish')
参考资料:
Python + Selenium Web自动化 全套教程 - 华为大叔7天带你入门
白月黑羽教Python-自动化测试