Welcome! This is Lu Chang, student at Northwestern Polytechnical University, Xi'an, China.
ludoux / ngapost2md Goto Github PK
View Code? Open in Web Editor NEW艾泽拉斯国家地理论坛/NGA玩家社区/NGA单帖爬虫/牛国安一键存贴,不怕冲水
License: MIT License
艾泽拉斯国家地理论坛/NGA玩家社区/NGA单帖爬虫/牛国安一键存贴,不怕冲水
License: MIT License
Welcome! This is Lu Chang, student at Northwestern Polytechnical University, Xi'an, China.
在&lite=js里,如果一个回复的recommend值为10,则此回复会带有特殊标签,比如“全隐”“锁定”等等。
比如tid=28743773、26217637、28743773
tid=20363301,页码=416,当本页的最后一楼的内容被吞掉的时候,恒有int(tdict['replies']) > totalfloor[len(totalfloor)-1][0],然后程序会不断增加页码
"__R":{"0":{"pid":563445812,"fid":-39223361,"tid":20363301,"authorid":1277654,"type":0,"score":0,"score_2":0,"recommend":0,"postdate":"2021-11-03 22:49","subject":"","alterinfo":"","content":"从没见过这么高的楼!<br/><br/>有总结吗??","lou":82302,"content_length":32,"from_client":"8 Android","postdatetimestamp":1635950958}},"__T":{"fid":-39223361,"tid":20363301,"topic_misc":"AQAAAAQ","subject":"NGA肖战粉仙人跳AO3贴+魔道祖师相关","locked":0,"recommend":10,"quote_to":"","quote_from":0,"type":8420,"replies":82304,"authorid":35329383,"postdate":1581501134,"lastpost":1635951028,"author":"a116128544","lastposter":"京都看花天","digest":0,"lastmodify":1635951028,"tpid":0,"}
如题,这些都是能通过html标签实现的,可以直接用styles=...属性来控制样式。作者有空添加一下?
使用某一参数运行,软件会检测当前时间距离编译时间已过多久。在一定范围内(例如:60天)内,则不会强制更新。超过此范围且有最新版本,则会忽视此参数继续要求强制更新
2023.8.26 11:00左右发现一直报错“需要检查更新”,增加参数--force-no-check-update
程序可以正常运行,查看源代码后发现是gitee的链接失效造成的。
func checkUpdate(dump bool) {
resp, _ := req.C().R().Get("https://gitee.com/ludoux/check-update/raw/master/ngapost2md/version_neo.txt")
//版本更新配置文件改为 DO_NOT_CHECK ,软件则不会强制使用最新版本
if resp.String() != nga.VERSION && resp.String() != "DO_NOT_CHECK" {
if dump {
f, _ := os.OpenFile("NEED_UPDATE", os.O_CREATE|os.O_WRONLY, 0666)
_, _ = f.Write(resp.Bytes())
defer f.Close()
}
log.Printf("目前版本: %s 最新版本: %s", nga.VERSION, resp.String())
log.Fatalln("请去 GitHub Releases 页面下载最新版本。软件即将退出……")
}
}
我认为检查更新函数的条件是不是改成类似于
if resp.String() != nga.VERSION && resp.String() == "CHECK" {
会更好一点?毕竟gitee的奇妙审核机制抽风也不是一天两天了……
1、支持[align=???]文本[/align]的对齐方式
2、对于不是ac娘系列的表情包,做一下处理,比如[s:dt:嘲笑]
3、支持格式化某些reply to的形式,参考图片 https://i.loli.net/2020/08/21/SUjKJwWQA5otnHf.jpg
4、支持删除线[del]标签
我自己也在做爬楼机,发现上面这些形式都有nga用户在用,所以提一些建议。
见截图,网页版有换行,但是生成的markdown没有换行。
https://s1.ax1x.com/2020/08/23/dB1jGn.jpg
waylandmy [at] sina [d] com
对应的markdown代码是
'''html
{font style="background:red"}hello world{/font}
'''
基本测试可用,只能把代码放剪贴板
gzip解压:
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
https://bbs.nga.cn/read.php?tid=23881293
#anony_fe5ffdd2aa5b0b21919c8c29b10db4b9
巳和卯杜游?
感谢您的工作。请问在未来的版本里,触发强制更新后本地软件能否提供一些除了CLI之外的信息,例如生成一个YouNeedxxx的文件?
我的应用场景使用了Windows power shell作为驱动,其中我采用了Jobs方法来运行您的程序,但是Jobs方法不一定总能抓取到程序的输出,在无人值守的情况下突然强制更新有可能会导致服务中断。如果有除了CLI外的检测方法(例如基于文件的程序运行状态简报),则可以更方便的处理异常情况。
用tid
拉取了帖子的内容后,生成的文件夹名只有tid
,这样不方便知道拉取的到底是哪个帖,所以建议把文件夹的名字里添加帖子的标题,比如25615215-[其他问题] 关于京东七天无理由退货。
。
在def main():
的input('press to exit.')
之前,加上dir_with_title()
,这个函数的定义:
def dir_with_title():
dir_oldname=str(tid)
dir_newname=str(tid)+"-"+title
re.sub('\?', ' ', dir_newname) # slugify filename if you need
os.rename(dir_oldname, dir_newname)
不同的操作系统、云盘可能对文件名有一些限制,这里就没有对规范文件名的操作细写了。
nga网页版支持的以下形式:
https://bbs.nga.cn/read.php?tid=21285198&lite=js => 对应json
https://bbs.nga.cn/read.php?tid=21285198&lite=xml
获取tid=23259348异常,在down:./23259348/9184841e.jpg Floor[1404/1432] 之后报错 Oops! '[/quote'
我检查一下,应该是第1410楼,
[quote][pid=451719713,23259348,71]Reply[/pid] [b]Post by [uid=61815177]青青园中韭[/uid] (2020-09-11 15:54):[/b]<br/><br/>大师还是很厉害的,隆基我来说两句吧(省略……)机构票贸然跑进去容易被一顿胖揍。大师挺住![s:ac:[/quote]<br/><br/>本周发言背景准备:<br/>周末陪孩子参加教师节活动,很有意义的一周(省略……)以维系在这波新人中自己的形象。
由于用正则匹配表情包bbcode在正则匹配引用bbcode之前,而这里 [s:ac:[/quote] 是nga自己的格式错乱问题,所以正则匹配表情包的时候在smile_ac词典里找不到键名[/quote,从而抛出KeyError异常。
用curl.exe测试,cookie设置Uid和Cid访问晴风村板块帖子(无登录要求)会先弹出“访客不能直接访问”网页(此处cookie设置了lastvisit),后面浏览器重定向至帖子详情页,观察发现cookie设置了guestJs=lastvisit,guestJs是unix时间戳值且有时效限制
未使用这个python脚本测试
网址结构大概是./[帖子ID]&authorid=[用户ID]
希望能增加这个功能
windows cmd>python nga_20200623.py
tid:22959845
22959845
localmaxpage1
localmaxfloor-1
trypage1
Traceback (most recent call last):
File "nga_20200623.py", line 185, in
main()
File "nga_20200623.py", line 144, in main
holder()
File "nga_20200623.py", line 163, in holder
while single(cpage) != False:
File "nga_20200623.py", line 41, in single
usertext = re.search(r',"__U":(.+?),"__R":', content, flags=re.S).group(1)
AttributeError: 'NoneType' object has no attribute 'group'
I am a Chinese user.貌似网事杂谈区主区的很多帖子都抓取不了,提示错误如上;但是分区的帖子可以抓取。建议多从主区找帖子来试试。
报错信息如题,搜了一下是说Urllib3版本太高所致,是这样么?需要降到哪个版本?谢谢
[提醒-功能变化]
2022-3-2,查看nga网页版帖子任意带有reply to的框块,其bbscode里不会含有被回复的内容,所以显示被回复的内容应该是网页javascript解析
379~381行的ritem[0]改为1
rt = '<details>\n <summary>已折叠,点击展开</summary>\n <pre>' + \
ritem[1].replace('\n', '<br>') + '</pre>\n</details>'
raw = raw.replace('[collapse]%s[/collapse]' % ritem[1], rt)
30729057为例,只有5页内容try page大概500页
另外测试被锁的帖子也会有不停try page的情况
2/19更新新版后解决
查看文件夹内部process.ini
的内容正常写入了max_floor和max_page,但重新运行此tid时发现无法像v1.2.0那样增量更新文件,仍然从第一页开始爬取处理。且运行程序后查看markdown文件发现文件内容没有增加,process.ini
中的内容没有改变。
config.ini
中的相关配置为
thread=1
page_download_limit=100
get_ip_location=False
enhance_ori_reply=True
use_local_smile_pic=False
local_smile_pic_path=../smile/
use_title_as_folder_name=True
use_title_as_md_file_name=True
匿名功能:从#anony_散列生成随机六位数中文名
(不会用Github相关功能,只提issue算了)
我是写其他语言的,这个Python代码我是临时学的,验证了5组匿名用户名。
# coding=utf-8
anony_string1 = '甲乙丙丁戊己庚辛壬癸子丑寅卯辰巳午未申酉戌亥'
anony_string2 = '王李张刘陈杨黄吴赵周徐孙马朱胡林郭何高罗郑梁谢宋唐许邓冯韩曹曾彭萧蔡潘田董袁于余叶蒋杜苏魏程吕丁沈任姚卢傅钟姜崔谭廖范汪陆金石戴贾韦夏邱方侯邹熊孟秦白江阎薛尹段雷黎史龙陶贺顾毛郝龚邵万钱严赖覃洪武莫孔汤向常温康施文牛樊葛邢安齐易乔伍庞颜倪庄聂章鲁岳翟殷詹申欧耿关兰焦俞左柳甘祝包宁尚符舒阮柯纪梅童凌毕单季裴霍涂成苗谷盛曲翁冉骆蓝路游辛靳管柴蒙鲍华喻祁蒲房滕屈饶解牟艾尤阳时穆农司卓古吉缪简车项连芦麦褚娄窦戚岑景党宫费卜冷晏席卫米柏宗瞿桂全佟应臧闵苟邬边卞姬师和仇栾隋商刁沙荣巫寇桑郎甄丛仲虞敖巩明佘池查麻苑迟邝'
'''
测试数据, 论坛网页处理Javascript函数是commonui.anonyName()
# '#anony_9c51a20a7c7e7d1c6a92e3de2fda8e78' 癸芦邓甲靳褚
# '#anony_b34a67e8d3d527fb3be72768afaa6afd' 丑傅辛辰符金
# '#anony_33b9c16f49748c9179d16cc12493765a' 丁汪苗庚虞季
# '#anony_692ac06925dfd03c7f328c5636f968bb' 庚梅华庚梅严
# '#anony_1af8b011e25dd2be72e84e8ee011e6e1' 乙蒲宁乙曾袁
'''
def anony_alias(anony_name):
# 根据匿名散列生成随机六位中文名, 函数传入形式: '#anony_9c51a20a7c7e7d1c6a92e3de2fda8e78'
res = ''
str16 = '0x0' + anony_name[7]
res += anony_string1[int(str16, 16)]
str16 = '0x' + anony_name[8:10]
res += anony_string2[int(str16, 16)]
str16 = '0x' + anony_name[10:12]
res += anony_string2[int(str16, 16)]
str16 = '0x0' + anony_name[13]
res += anony_string1[int(str16, 16)]
str16 = '0x' + anony_name[14:16]
res += anony_string2[int(str16, 16)]
str16 = '0x' + anony_name[16:18]
res += anony_string2[int(str16, 16)]
res += '?'
return res
aname = '#anony_1af8b011e25dd2be72e84e8ee011e6e1'
print(anony_alias(aname))
建议用 https://bbs.nga.cn/read.php?tid=23362790&page=6 来测试。这个网页不会过时,且以下匿名用户有对应的很多楼层:
癸芦邓甲靳褚?:0、31、41、51、73、78、104、111、124、135楼
丑傅辛辰符金?:9、39楼
卯柯郑辰赖龚?:117楼
同时回帖内容bbcode里的
r'\[quote\].+?\[uid.*?\](.+?)\[/uid\].*?\((\d{4}.+?)\):\[/b\](.+?)\[/quote\]((?:\n){0,2})'
和
r'\[b\]Reply to .+? Post by \[uid.*?\](.+?)\[\/uid\] \((.+?)\)\[\/b\]((?:\n){0,2})'
里也可能会出现#anony_XXX的形式。
应该是因为路径的问题吧,Mac或者Linux的路径/对应win的路径\。请楼主修改下。
试了好几个帖子都是这种错误
waylandmy [at] sina.com
[album=查看全部附件]
./mon_xx/../xxx.jpg
./mon_xx/../xxx.jpg[/album]
@CatSayInk @proItheus @oarinv @crella6
目前新版本基本实现了大多数旧版功能,具体参见 neo 分支的 README。
假如各位方便或者正在使用旧版的话,欢迎用这个新版的测试一下,捉捉 bug。多谢多谢 :) 😄 (特别是reply等格式在md文件里的排版等bug)
使用说明也请见 neo 分支的 README。简单来说就是需要更改 cookies.json
里面的两个 MODIFY_ME
文本 和 config.ini
里的 UA MODIFY_ME
文本。
文件在下文链接的压缩包里,里面有AMD64架构的Linux版和Windows版,任一测试即可。
下载:ngapost2md_NEO_PRE_0.0.1_20230515.zip
(20230516: 应用了PR #51 ,已修复 config.ini
字段错误)
现在帖子详情页看不到ip只能在用户页看到,访问https://bbs.nga.cn/nuke.php?__lib=ucp&__act=get&uid=[UID]&lite=js然后读取 ipLoc的值即可得到 ip归属地
> > 感谢感谢,顺便问一下,请问v1.4.0中每次运行的时候强制覆盖config.ini是有什么特殊的考虑吗?
准确来说不能叫“强制覆盖”,只是把旧的配置文件读取后,填充进标准配置里头再重新输出覆盖config.ini文件。配置信息(比如cid uid和个性化配置等)都不会变,只是会影响到注释,和软件不存在的配置项。比如有些用户可能会在注释里备注一些信息,这种情况在1.4.0后就会被覆盖成为原始的注释信息。
这个变动是由于引入了配置文件自动更新而来的,即跨版本更新后,假如配置项有变化,软件会自动将旧版的更新为新版。注释被覆盖这个问题,主要是比较少用户会这么用吧。
更新日志里头提这个,主要是配置文件会被软件修改这个行为,相对来说确实比较奇怪…
明白了,既然是这样的话我认为完全可以独立一个专门用于更新配置项的.exe或者.ps1,毕竟这个过程理论上在大版本更新后只需要进行一次。
Originally posted by @Gungnir762 in #21 (comment)
我刚设置了authorid,但好像page会无限增大,有啥解决方法吗
Oops! 'NoneType' object has no attribute 'group'
Press to exit.
其他帖子可以正常使用
偶发情况,隔了一段时间后之后又可以,原因未知,推测可能是浏览速度有限制
cookie好像只需要
ngaPassportUid
ngaPassportCid
就可以了
折叠区域,示例帖子tid:23362790
<br/>感觉自己有种“姐系”的气质,举些例子:<br/>[collapse=和认识的仅有几个男生相处]<br/>实验室坐我旁边的男A:.......[del]人生三大错觉[/del],现在已经异地实习去了<br/><br/>[/collapse]<br/><br/>
按发帖时的用法提示:
[collapse=提要]
隐藏的内容……
[/collapse]
[collapse]
没有提要也可以……
[/collapse]
Markdown的
<details><summary>
标签应该是可以用的
现象:NEO_1.4.2存在无意中覆盖用户配置文件到默认配置的情况。
推断:在config.ini被外部编辑、占用或者ngapost2md.exe存在多个实例同时调用config.ini时,NEO_1.4.2有可能会直接将用户的有效配置文件覆写为空白的配置文件。
复现方法:模拟config.ini暂时不可用的场景(例如外部编辑或同时调用),随后使用一个脚本来观察文件是否有更改。
本地复现结果:
使用的脚本:
filetest.zip
title忘了加上吧
❯ python nga.py
tid:24409319
24409319
localmaxpage1
localmaxfloor-1
trypage1
Oops! 'NoneType' object has no attribute 'group'
press to exit.
以上是输出,看了一下代码没找到group,还是把Bug抛给你吧23333
https://bbs.nga.cn/read.php?tid=29867028&page=4 74楼 嵌套quote
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.