上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖
楼主: hysaoh - 

python实现小说更新提醒

[复制链接]
  • TA的每日心情
    开心
    2024-2-28 14:15
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    37

    主题

    233

    回帖

    363

    积分

    版主

    积分
    363

    油中2周年生态建设者

    发表于 2022-5-20 17:01:32 | 显示全部楼层 | 阅读模式

    测试网站:笔趣阁,网址为https://www.bswtan.com/
    登录网址为https://www.bswtan.com/login.php书架网址为https://www.bswtan.com/modules/article/bookcase.php
    最后写个bat脚本,定时执行这个python程序,完美撒花。
    其实想着最后转换成脚本猫后台脚本的,再搭配上web界面设置,可惜奥,暂时没有时间了,主要还是不会写,哈哈。
    代码贴上。

    # -*- coding: utf-8 -*-
    """
    @Author         :Cat
    @Date           : 2022年 05月 16日
    @Introduction   :A Lazy Cat
    """
    import re
    
    import requests
    from bs4 import BeautifulSoup
    
    def can_read(uri):
        sss = session.get("https://www.bswtan.com/%s" % uri)
        # soup = BeautifulSoup(get.text, "html.parser")
        sss.encoding = "UTF-8"
    
        soup = BeautifulSoup(sss.text, "html.parser")
        soup_select = soup.select("#content")
        # 小说长度
        len1 = len(re.sub(r'<.*?>|&nbsp', '', str(soup_select)))
        if len1 > 2000:
            return True
        else:
            return False
    
    if __name__ == '__main__':
    
        url = "https://www.bswtan.com/login.php"
        username = "你的账户名"
        password = "你的密码"
    
        payload = 'LoginForm%5Busername%5D={0}&LoginForm%5Bpassword%5D={1}'.format(username, password)
        headers = {
            'Content-Type': 'application/x-www-form-urlencoded',
        }
        session = requests.session()
    
        session.post(url, headers=headers, data=payload, timeout=3)
    
        get = session.get("https://www.bswtan.com/modules/article/bookcase.php", timeout=3)
    
        soup = BeautifulSoup(get.text, "html.parser")
    
        select = soup.select('.grid')[0].select('tr td >a')
    
        book_name = select[0::2]
        up = soup.select('.grid')[0].select('tr td span>a')
    
        book = list(map(lambda x: x.string, book_name))
        up = list(map(lambda x: (x.get("href"), x.string), up))
        a = up[0::2]
        b = up[1::2]
        is_update = []
        booklist = {}
        read = can_read(a[1][0])
        for i in range(len(a)):
            booklist[book[i]] = [a[i][1], b[i][1], (not a[i] == b[i]), ["否", "是"][can_read(a[i][0])]]
        for (k, v) in booklist.items():
            if v[2]:
                print("《%s》有更新!\n\t最新章节为:%s\t是否可读?:%s\n\t阅读进度为:%s" % (k, v[0], v[3], v[1]))
    
    一叶叶,一声声,空阶滴到明。
  • TA的每日心情
    开心
    昨天 18:01
  • 签到天数: 879 天

    [LV.10]以坛为家III

    30

    主题

    732

    回帖

    7356

    积分

    荣誉开发者

    精通各种语言的HelloWord!

    积分
    7356

    荣誉开发者油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-5-20 17:15:14 | 显示全部楼层
    ggnb                     
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 13:37
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4189

    回帖

    4056

    积分

    管理员

    积分
    4056

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2022-5-20 18:12:14 | 显示全部楼层
    转化成后台脚本应该不难的
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-2-28 14:15
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    37

    主题

    233

    回帖

    363

    积分

    版主

    积分
    363

    油中2周年生态建设者

    发表于 2022-5-20 21:59:50 | 显示全部楼层
    王一之 发表于 2022-5-20 18:12
    转化成后台脚本应该不难的

    哈哈,可惜我现在没什么时间,不然学一下就能写出来。
    一叶叶,一声声,空阶滴到明。
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表