TiebaBackup
TiebaBackup copied to clipboard
一些问题
同时报上一处崩溃 `[!] ERROR: 发生异常: Traceback (most recent call last):
File "main.py", line 397, in
GetPost(pid,lz,comment)
File "main.py", line 341, in GetPost
Write(ProcessFloor(fnum,userlist[floor["author_id"]]
["name"],floor["time"],ProcessContent(fnum,floor["content"],0)))
File "main.py", line 273, in ProcessContent
content+=ProcessVideo(s["link"],s["src"])
KeyError: 'link'`
就是这一处崩溃导致我要重来 重新爬10000楼的帖子有点坑
崩溃发生在6477171863帖子的3118楼, 批量n 楼主n 格式:md 评论:y
3118楼的崩溃并非偶然,已经复现一次
初步判断3118楼有个引用了bilibili的外链视频封面超链接
@cnwangjihe
实测3118 md及html格式均无法爬取
3318楼刚刚被删了,如果想要复现bug请找我发一个一样格式的楼层
这么久才回十分抱歉,但目前学业上较忙,可能较长时间内都没法改
@cnwangjihe 没事,就是目前有几个bug要修复
已经修复并提供在这里:
1,win的文件夹长度限制,有的帖子长度超过了
解决:相应改为DirName=title["forum"]+"\\"+((title["post"])[0:20])
P.S.其实有的帖子中有/符号也不行,这个就没修,修的话相信大佬也会,只是没想到这种情况而已
2.这个算不上bug,就是只看楼主模式不能选择有评论 解决(如果需要):将判断去掉(不贴代码相信大佬也会)
3.建议:批量模式可以选择在开头一次性加入n个帖子id,做成list,然后for循环,n = n+1每次的id就是list[n]
个人愚见,如有异议请轻喷 另外可以加入配置文件设置是否为静默运行(方便服务器挂机定时备份) P.P.S.我已经在这样做了XD
另外还可以在当已存在同名文件夹的时候重命名已有文件夹/现有文件夹,后面加时间作为区分
import datetime
datetime.datetime.now().strftime('%Y_%m_%d %H-%M')
这是时间,用 + 加入原文件名/新文件名 @cnwangjihe
之前无法创建文件夹的真正原因找到了,不是因为长度
是标题末尾的连续英文句号...
现在用re.sub把所有不能当文件夹名称的字符都替换就行了
title_name=re.sub(r'(/|\\|\?|\||\*|\:|\"|\<|\>|\.)','',title["post"])
@cnwangjihe
@cnwangjihe 目前又发现一处新的问题 在下载完成后,下载线程有几率无响应,只要是在爬取大型帖子时暴露,此处指的帖子是5000l的一个帖子,超出个人能力范围,望开发者能解决这个问题
貌似只要碰到有外站视频的楼层就会出现这个问题,https://tieba.baidu.com/p/2392658480?pn=2,这个帖43楼也是。失败了就只能断在这里