前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[Python]获取起点小说网的更新情况

[Python]获取起点小说网的更新情况

作者头像
祥知道
发布2020-03-10 16:50:35
6020
发布2020-03-10 16:50:35
举报
文章被收录于专栏:祥的专栏祥的专栏祥的专栏

原创文章,欢迎转载。转载请注明:转载自 祥的博客

原文链接:https://cloud.tencent.com/developer/article/1596469


文章目录

- @[toc]原因代码2.1. Python文件代码2.2. 批处理文件代码

Python获取起点小说网的更新情况

1. 原因

每次想知道网络小说的更新情况,就得去贴吧逛逛,然后去起点网瞧瞧,这样很浪费时间,尤其是我这种一逛贴吧,就出不来的选手,所以写了一个脚本,用来获取小说的更新情况,不需要点开网页,直接运行bat文件就ok了。

对于不同的小说,改一下url就行了。

那个,我也觉得看网络小说不好,而且也在看一些严肃文学作品,但是无奈啊,我就是一个脱离不了快餐文学的人。。。

2. 代码

2.1. Python文件代码

文件名:getYuanZunInfo.py

# 获取元尊的数据
# url = 'https://book.qidian.com/info/1014920025'

import requests
import re
from bs4 import BeautifulSoup
import bs4
import os
import time


class getYuanZunInfo():
    def __init__(self,
                 url,
                 timeout=10,
                 filePath='yuanZun.txt',
                 mode='a',
                 fileEncode='utf-8'):
        self.url = url
        self.timeout = timeout
        self.filePath = filePath
        self.mode = mode
        self.fileEncode = fileEncode
        self.li_dataInfo = []

    # 写到文本文件中
    def writeText2File(self, content):
        filePath = self.filePath
        mode = self.mode
        fileEncode = self.fileEncode
        f = open(filePath, mode, encoding=fileEncode)
        f.write(content)
        f.close()

    # 获取html
    def getHTMLText(self):
        url = self.url
        timeout = self.timeout
        flags = False
        try:
            kv = {'user-agent': 'Mozilla/5.0'}
            r = requests.get(url, headers=kv, timeout=timeout)
            # print(r.status_code)
            r.raise_for_status()
            r.encoding = r.apparent_encoding
            flags = True
            return flags, r.text
        except requests.exceptions.Timeout as e:
            flags = False
            return flags, str(e)
        except requests.exceptions.ConnectionError as e:
            flags = False
            return flags, str(e)
        except requests.exceptions.HTTPError as e:
            flags = False
            return flags, str(e)

    # 解析html
    def parseYuanZun(self):
        [flg, html] = self.getHTMLText()
        try:
            soup = BeautifulSoup(html, "html.parser")
            # 章节ID
            chapterID = soup.find(id='J-catalogCount').text
            chapterID = re.sub("\D", "", chapterID)

            # 章节详细信息
            chapterUpdate = soup.find('li', attrs={"class": "update"})
            # 章节名
            chapterTitle = chapterUpdate.find(
                'a', attrs={
                    "class": "blue"
                }).get("title")
            # 更新时间
            lastUpdateTime = chapterUpdate.find(
                'em', attrs={
                    "class": "time"
                }).text

            # 更新到全局变量
            self.li_dataInfo.append(chapterID)
            self.li_dataInfo.append(chapterTitle)
            self.li_dataInfo.append(lastUpdateTime)

            # 显示+保存
            self.show_save_Info()

        except:
            print('解析html失败!')

    def show_save_Info(self):
        # show

        print("==================")
        # 章节ID
        # 章节名
        # 最新一次更新时间        
        str_show = "更新到: %s 章\n%s\n\n最新更新时间: %s" % (
            self.li_dataInfo[0], self.li_dataInfo[1], self.li_dataInfo[2])
        print(str_show)
        print("==================")

        # self.writeText2File(str_show)  # save 到txt


if __name__ == "__main__":

    url = 'https://book.qidian.com/info/1014920025'
    yuanZun = getYuanZunInfo(url)
    yuanZun.parseYuanZun()

2.2. 批处理文件代码

文件名:getYuanZun.bat

::获取最新的小说数据
python getYuanZunInfo.py

pause()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1. 原因
  • 2. 代码
    • 2.1. Python文件代码
      • 2.2. 批处理文件代码
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档