用Python下载Lofter上“喜欢”的文章和图片

# 所有文字+【文中外链地址】保存为txt,命名规则:页数_该页第几篇 标题.txt

# 有图片的自动下载,没有图片的就不下载,命名规则:页数_该页第几篇 标题_图片序号(从1开始).后缀

# 这里暂时只有手机登录方式,其他登录方式都很简单,可以自己探索

# selenium用到chromedriver:

          Step1:下载chrome浏览器并查看chrome版本

          Step2:http://chromedriver.storage.googleapis.com/index.html下载对应版本的chromedriver(没有一样版本的下载附近版本的就可以)

          Step3:将chromedriver与本代码放在同一个文件夹中!!!(或者改一下路径代码)

# 如果你熟练使用python,可以跳过以下保姆级啰嗦:

          1. 记得先下载代码用到的库

          2. 输入手机号、密码和保存路径的那里,可以自行将input改为固定字符串(正确举例:'13900000000'必须带英文引号),路径最后一定要带上'/',而且带'\'的话可能会出问题(正确举例:'D:\Lofter/'

          3. 存在图片下载失败的情况会进行提示“5_62_1.png未能保存”并继续运行程序,这种情况下推荐手动去网页里保存一下图片(例如5_62_1.png是第5页第62篇,可以根据已成功保存的5_62 blablabla.txt查看这篇的文字内容,然后在网页上ctrl+F进行查找),失败概率大概是10页(约1000篇图文)里面可能会有5~8张图片无法保存。

          4. 存在不明原因中断的情况,会提示“第x页第x篇完蛋 or 第x页完”+“完蛋 or 全部结束”,或仅提示“第x页第x篇完蛋 or 第x页完”就跳转至下一页。这种情况下可重新从第x页第x篇开始下载。

          5. chromedriver不要改名!!就叫chromedriver(或者改代码也行)

# 可能会后续更新的点(欢迎继续提出建议):

          1. 本来想把文章在Lofter上的tag也写进txt里,后面感觉个人不太需要就没有写了

          2. 在评论里的外链没有写进txt,有时间会试着写一下

          3. 有可能的话想把外链里的图文也保存下来,工程量比较大,想写的时候再写

          4. 如果有bug、建议、疑问,欢迎讨论,虚心接受一切与代码有关和无关的批评建议!!

# !!!写手画手创作不易,请务必尊重版权!!!代码仅作为练习Python或收藏喜欢的图文使用

2021/08/08 12:40更新内容:这次的更新包括重新定位、标题存储的修改、循环的精简,以及重点针对网页本身的跳转bug进行了相应调整,应该算是短期内较为完整的一版了。

# 以上说明的最后更新时间:2021/08/08 12:40;代码的最后更新时间:2021/08/10 11:46

import os
import time
from selenium import webdriver
from bs4 import BeautifulSoup
import urllib.request
import random


class Lofter:
    def __init__(self):
        self.pageleap = int(input('要从第几页开始下载'))
        self.articleleap = int(input('要从第{}页的第几篇开始下载'.format(self.pageleap)))
        self.endpage = int(input('一共有多少页?'.format(self.pageleap)))
        self.username = input('请输入手机号')
        self.password = input('请输入密码')
        self.savepathf = input('请输入保存地址')

    def get_driver(self):
        exe_path = os.path.join(os.path.split(__file__)[0], 'chromedriver.exe')
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_argument('--headless')  # 增加无界面选项
        chrome_options.add_argument('--disable-gpu')  # 如果不加这个选项,有时定位会出现问题
        self.driver = webdriver.Chrome(executable_path=exe_path, options=chrome_options)  # 声明浏览器
        url = 'http://www.lofter.com/'
        self.driver.get(url)  # 打开浏览器预设网址
        self.driver.implicitly_wait(30)  # 隐式等待
        time.sleep(3)

    def log_in_by_tel(self):
        ele_login = self.driver.find_element_by_xpath(
            '/html/body/div[1]/div/div[2]/div[2]/div/div/div[1]/div/a[2]')  # 定位手机号密码登录
        ele_login.click()  # 点击
      
  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值