python多线程下载小说章节重复_【python】【分享】对多线程爬取的小说章节重新排序...

"D:\Program Files\py36\python.exe" D:/源码/练手.py

144    144以退为进.txt

145    145你们是找我的?.txt

163    163去找狐狸.txt

1    1第一章狐狸急了会咬人.txt

126    一二六章妙儿被打伤.txt

111    一百一十一章撸猫.txt

128    一百二十八你后悔了?.txt

214    二一四-终极目标.txt

23    二十三章逃婚.txt

2105    二千一百零五-谈个交易.txt

435    四三五小狐狸醒了.txt

114    第一白一十四不想回去.txt

100    第一百章要不要动手.txt

103    第一百零三章将他杀了即可.txt

31    第三十一章不懂女人.txt

35    第三十五章活在当下.txt

34    第三十四章道歉.txt

30    第三十章刻薄.txt

3    第三章培养感情的套路.txt

90    第九十章失去灵力.txt

9    第九章迟早会走的.txt

2101    第二千一百零一章-地头蛇潘哥.txt

41    第四十一章找到小狐狸.txt

47    第四十七章当面变身.txt

45    第四十五章退婚.txt

44    第四十四章把它送走.txt

Process finished with exit code 0

[Python] 纯文本查看 复制代码import os, requests, time, tkinter.messagebox, json

from bs4 import BeautifulSoup

from tkinter import *

# 判断是否为数字

def is_number(s):

try:

float(s)

return True

except ValueError:

pass

try:

import unicodedata

unicodedata.numeric(s)

return True

except (TypeError, ValueError):

pass

return False # 判断是否为数字

CN_UNIT = {

'十': 10,

'拾': 10,

'百': 100,

'佰': 100,

'白': 100,

'千': 1000,

'前': 1000,

'仟': 1000,

'钱': 1000,

'万': 10000,

'萬': 10000,

'亿': 100000000,

'億': 100000000,

'兆': 1000000000000,

}

CN_NUM = {

'〇': 0, '一': 1, '二': 2, '三': 3, '四': 4, '五': 5, '六': 6, '七': 7, '八': 8, '九': 9, '零': 0, '令': 0,

'壹': 1, '贰': 2, '叁': 3, '肆': 4, '伍': 5, '陆': 6, '柒': 7, '捌': 8, '玖': 9, '貮': 2, '两': 2,

}

CN_NUMS = {

'〇': '0', '一': '1', '二': '2', '三': '3', '四': '4', '五': '5', '六': '6', '七': '7', '八': '8',

'九': '9', '零': '0', '令': '0', '壹': '1', '贰': '2', '叁': '3', '肆': '4',

'伍': '5', '陆': '6', '柒': '7', '捌': '8', '玖': '9', '貮': '2', '两': '2'

}

def chinese_123(cn: str) -> str:

# print(cn)

a = []

for cndig in cn:

a.append(CN_NUMS.get(cndig)) # 从集合里找到要替换的字并且返回,加入到字典里

y = ''.join(a) # 重新组合

return y

# 章节大写转小写

def chinese_to_arabic(cn: str) -> int:

'''

CN_UNIT = {

'十': 10,

'拾': 10,

'百': 100,

'佰': 100,

'白': 100,

'千': 1000,

'前': 1000,

'仟': 1000,

'钱': 1000,

'万': 10000,

'萬': 10000,

'亿': 100000000,

'億': 100000000,

'兆': 1000000000000,

}

CN_NUM = {

'〇': 0, '一': 1, '二': 2, '三': 3, '四': 4, '五': 5, '六': 6, '七': 7, '八': 8, '九': 9, '零': 0, '令': 0,

'壹': 1, '贰': 2, '叁': 3, '肆': 4, '伍': 5, '陆': 6, '柒': 7, '捌': 8, '玖': 9, '貮': 2, '两': 2,

}

'''

unit = 0 # current

ldig = [] # digest

for cndig in reversed(cn):

# print(cndig)

if cndig != '第':

if cndig in CN_UNIT:

unit = CN_UNIT.get(cndig)

# print(unit)

if unit == 10000 or unit == 100000000:

ldig.append(unit)

unit = 1

elif cndig in CN_NUM:

dig = CN_NUM.get(cndig)

# print(dig)

if unit:

# print(dig)

dig *= unit

unit = 0

ldig.append(dig)

else:

return cn

if unit == 10:

ldig.append(10)

val, tmp = 0, 0

for x in reversed(ldig):

if x == 10000 or x == 100000000:

val += tmp * x

tmp = 0

else:

tmp += x

val += tmp

return val

def ok(y):

c = re.findall(r'\d+', str(y)) # 对返回的文字直接提取数字检查是否成功

if c: # 判断是否提取到数字如果成功返回文本 不成继续处理

y = ''.join(c)

else: # 提取里面还有这些字的标题然后再处理

p = re.compile('[一壹两贰二三叁四肆五伍六陆七柒八捌九玖十拾白百佰仟千万零]')

y = ''.join(p.findall(y)) # 提取包含上面字典里的标题文字

s = ['十', '拾', '白', '百', '佰', '仟', '千', '万']

if any(t in y for t in s): # 判断提取的标题是那种类型是否包含上面数字

# print(y)

y = chinese_to_arabic(y) # 再次召唤转换程序转换

# print('ok55', y)

else:

y = chinese_123(y)

#print(y)

return y

def okk():

path = 'D:\内容' #处理的文件夹

mldir = os.listdir(path)

for x in mldir:

print(ok(x), '< ',x)

#ok(x)

if __name__ == '__main__':

okk()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值