编程语言
首页 > 编程语言> > 使用Python看网络小说

使用Python看网络小说

作者:互联网

本文所述内容及其低级,仅为入门水平,高手勿阅。

时值疫情期间,女友来家竟然惨遭滞留。本人因看网络小说,经常遭遇女友与老妈的双重监管(他们两个商量好了要督促我学习)

被逼无奈,使用Python书写基础功能的看小说工具(仅使用控制台打印),可自动换页与换章。

详情如下:

使用PyCharm+Anaconda3 环境,包缺啥装啥,直接在PyCharm里装,及其简单粗暴。

import time

import requests
import urllib3

from bs4 import BeautifulSoup


#目标网址
url = "http://m.vipzw.com"              # 主连接地址
child_url = "/wapbook-7327-30323063/"   # 子链接地址

AutoNextPage = True    # 自动获取下一页
NextPageWait = 0       # 自动获取间隔,单位秒

AutoNextUnit = False   # 自动获取下一章
NextUnitWait = 10      # 自动获取间隔,单位秒

CharNumEveryLine = 20  # 一行显示多少字

if not AutoNextPage or not AutoNextUnit:
    inp=input()        # 如果并非全自动获取,需要在控制台敲击回车获取接下来的内容
else:
    inp = ''

while(inp!='exit'):    # 如果并非全自动获取,在控制台输入exit退出程序

    temp = 0
    Text = ''
    #使用request去get目标网址
    res = requests.get(url + child_url)
    res.encoding="UTF8"
    soup = BeautifulSoup(res.text, "html.parser")
    for descendant in list(soup.body.descendants):
        if descendant.name!=None:
            if not descendant.name == 'a':
                if descendant.name == 'p':
                    if not descendant.text in Text:
                        Text += descendant.text
                elif descendant.name == 'div':
                    if not descendant.text in Text:
                        Text += descendant.text
            else:
                if descendant.text == '下一页':
                    temp = 1
                    child_url = descendant.attrs['href']
                elif descendant.text == '下一章':
                    temp = 2
                    child_url = descendant.attrs['href']

    Text = Text.replace('&nbsp;',' ').replace('<br />','\n').replace('\n\n','\n')\
        .replace('\n\n','\n').replace('\n\n','\n').replace('    ','')


    i = 0
    for c in Text:
        print(c,end='')
        i+=1
        if c=='\n':
            i=0
        if i>CharNumEveryLine:
            print('\n',end='')
            i=0

    if temp == 1 and AutoNextPage:
        time.sleep(NextPageWait)
    elif temp == 2 and AutoNextUnit:
        time.sleep(NextUnitWait)
    else:
        print('\nNextUrlTo:',url + child_url)
        inp = input()

运行结果如下:


返回
487【空白市场】
首页
报错
关灯
护眼
字:大 中 小
codfish1(); 
上一章
回目录
下一页
进书架
最新网址:m.vipzw.com     
487【空白市场】 (第1/3页)    
说起连锁超市,第一反应大概会想起沃尔玛、家
乐福之类。
    但在2000年左右,这些洋超市虽然
已经进入中国,其影响力却远远不如中国本土的

......

贴的太多可能会侵权,毕竟不是自己写的小说呜......(叫《重生野性时代》)

还有优化空间,我只想做个最简单的逃脱监管,毕竟用PyCharm看他们不知道我在干啥,以为我在调试程序哈哈哈

 

标签:Python,Text,child,replace,url,text,网络小说,使用,descendant
来源: https://blog.csdn.net/weixin_40901068/article/details/104741315