cnwangjihe/TiebaBackup

一些问题

Closed this issue · 12 comments

同时报上一处崩溃
`[!] 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的外链视频封面超链接

实测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楼也是。失败了就只能断在这里