首页 编程教程正文

python试炼,爬了起点的非vip小说,打包了一下

piaodoo 编程教程 2020-02-22 22:04:48 969 0 python教程

本文来源吾爱破解论坛

本帖最后由 Wikin 于 2019-3-1 22:29 编辑

首先献上代码


[Asm] 纯文本查看 复制代码

print('''---------注明------------
小说编码:是起点小说打开某部作品时的网址位置的那一串数字
章节数:输入适当的数字,是从第一章到你输入的递增获取,不能从中间开始          (实际==懒得弄了....)
    vip章节不可获取(获取下来的不完整)
保存路径:请在本地计算机中的某个位置将地址栏的位置进行复制粘贴操作即可
闲戏提醒您:
    代码千万条,我说第一条
    输入不规范,软件必玩完
--------------------------''')
headpools = [
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60',
    'Opera/8.0 (Windows NT 5.1; U; en)',
    'Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50',
    'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0',
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2',
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36',
    'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko',
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER',
    'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; QQBrowser/7.0.3698.400)',
    'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 SE 2.X MetaSr 1.0',
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.3.4000 Chrome/30.0.1599.101 Safari/537.36',
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.3.4000 Chrome/30.0.1599.101 Safari/537.36'
]
import urllib.request,re,random

def ua():
    a = random.choice(headpools)
    user_agen = ('User-Agent',a)
    ua_1 = urllib.request.build_opener()
    ua_1.add_handlers = [user_agen]
    urllib.request.install_opener(ua_1)

for i in range(3):
    code = input('请输入起点小说编码:')
    d = input('下载章节数:')
    while True:
        try:
            d = int(d)
            break
        except:
            d = input('请输入正确下载章节数量:')
    dir = input('文件保存路径:').replace('\\',r'\\')+r'\\'
    ua()
    path = ',"cU":"(.*?)"'
    data = urllib.request.urlopen('https://read.qidian.com/ajax/book/category?_csrfToken=W3Qw76uPjNrWkGswLpkjV5faKrFYI84CMGrLiRmu&bookId='+code).read().decode('utf-8','ignore')
    screen = re.compile(path).findall(data) #筛选各个章节的网址乱码

    for i in range(d):  # 循环次数,及第0-X章节
        data_1 = urllib.request.urlopen('https://read.qidian.com/chapter/'+screen[i]).read().decode('utf-8','ignore')
        path_1 = '<div class="read-content j_readContent">(.*?)</div>'
        screen_1 = re.compile(path_1,re.S).findall(data_1) # 正文一筛选
        path_2 = '<p>\u3000\u3000'
        screen_2 = re.sub(path_2,'\n\n',screen_1[0]) # 正文二筛选
        path_name = 'rName">(.*?)</h3>'
        name = re.compile(path_name).findall(data_1)   # 章节名筛选
        file = open(dir+name[0]+'.txt','w')
        file.write(screen_2)
        file.close()
        print('下载完成:'+name[0])



然后附上打包好的小软件,没想到软件有点大= =5M


链接:https://pan.baidu.com/s/1kCW9dTgIFNmiORlHohMkWw
提取码:2pve

没有做ui(原因感觉麻烦,而且我也真的不会- -)所以界面很---cmd...  将就着玩吧

还有一点就是代码中提醒的不规范内容,请一定要规范输入,不然真的是会崩溃的,虽然没啥大问题- -   可能吧

求大佬来喷我!!我要进步,我要在一片喷声中进步,




说明下:百度网盘里放的是代码打包的小软件,软件非vip不能获取!下载章节数输入的数量超出应有章节数会致错,小说编码不对会致错,文件保存路径不存在会致错
所以务必规范输入,虽然上述问题均可被try掉,但是没必要,个人用的怎么简单怎么来对吧。


代码改进(补充):
screen_2 = re.sub(path_2,'\n\n    ',screen_1[0]) # 正文二筛选这个位置的\n\n改为\n\n    ,后面有4个空格这样生成的文件每段都会有空两格的样式,he样看会比较适合大家吧----------------------------------------------------对原本的以下代码[Asm] 纯文本查看 复制代码
        file.write(screen_2)
        file.close()
        print('下载完成:' + name[0])
更改为以下代码。[Asm] 纯文本查看 复制代码
        path_book = '<title>(.*?)_'
        screen_book = re.compile(path_book).findall(data_1) # 书名筛选
        file = open(dir+screen_book[0]+'.txt','a')
        file.write('\n'+screen_name[0]+screen_2)
        file.close()
    print('下载完成:'+screen_book[0])
以此满足15楼同学!!代码更改后,创建的文件名为书名而非章节名,只会创建一个txt文件,然后把所有的后续章节追加到该文件。------------------------------------------------------file.write(name[0]+screen_2)这个位置的写入加上章节名称,满足30楼同学

另外:非常欢迎各位同学继续指点内容,看我能不能满足各位同学咯&#10048;&#10048;&#10048;&#10048;

asd.png (71.64 KB, 下载次数: 0)

下载附件  保存到相册

2019-2-28 13:48 上传

小说编号

小说编号

xxxxxxxxxxxxxxxx.png (74.28 KB, 下载次数: 2)

下载附件  保存到相册

2019-2-28 13:47 上传

软件样式

软件样式

本帖被以下淘专辑推荐: · 爬虫专栏|主题: 38, 订阅: 39

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7484.html

搜索