MC百科社群

标题: 【教程向】如何批量导出curseforge的更新日志(100%) [打印本页]

作者: sxjsxj    时间: 2018-4-4 19:20
标题: 【教程向】如何批量导出curseforge的更新日志(100%)
本帖最后由 sxjsxj 于 2018-4-7 09:31 编辑

[BGM预留位]


前排提醒,该方法成功率不佳



有什么用:
一些mod没有官网,也没有统一发布changelog的页面,只在curseforge内写了changelog。而curseforge中的更新日志是不能批量看的,只能一个一个版本打开查看,这会给贡献者带来不便。这个工具可以批量取得modder在curseforge写的更新日志,以便贡献者能更有效率地为百科添加更新日志。


抓取结果预览(html格式):



原理:通过Google自定义搜索确定目标,然后用爬虫抓取内容。


环境要求:


教程原文:https://github.com/CMuell/Curseforge-Changelog-Compiler/wiki/Setup



第一节  安装Python


第二节  下载Curseforge Changelog Compiler



第三节  获取Google API key
   1. 打开Google 云端平台凭据页,登录Google账号。(已登录请略过)
   2-1. 如第一次使用,请点击“创建”创建一个项目,名称随意。
   2-2. 如已创建项目,可以点击“选择”选择一个可用项目。
   3. 点击“创建凭据”,选择“API 密钥”后,等待后台创建API 密钥。
   4. 复制弹出框中的API 密钥,备用。


第四节  获取Google CSE ID



第五节  更改配置文件


第六节  运行程序

收尾  检查报告



至此,导出更新日志的步骤就完成了。我用的两个黑科技都已经发教程了,一篇是这个,另一篇是如何及时获知mod更新
后续有学会新的技巧的话,也会教各位哦。
呐,またね~~

作者: sxjsxj    时间: 2018-4-7 09:02
本帖最后由 sxjsxj 于 2018-4-7 09:28 编辑

附录  查错篇

Q:输入“y”或“n”后直接Finished,报告中无更新日志。cmd界面显示如下:
  1. Strip HTML Tags? [y/n]: n
  2. Finished!
复制代码
A:确认配置文件内的“path_old_ver”与“path_new_ver”路径正确,且路径内有相应的mod文件。“path_old_ver”指定的文件夹内放旧版本mod文件,“path_new_ver”内放新版本mod文件。


Q:输入“y”或“n”后等待了一段时间,cmd输出如下语句,报告中无更新日志:
  1. Traceback (most recent call last):
  2.   File "changelog.py", line 153, in <module>
  3.     file_object.write(final_entry)
  4. UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 474: illegal multibyte sequence
复制代码
A:出现该问题时,可尝试变更输入的“y”(“n”)为“n”(“y”),如无法解决,就慢慢等开发者修复吧……
表示已上报开发者,issue:https://github.com/CMuell/Curseforge-Changelog-Compiler/issues/6(似乎用英文的操作系统不会遇到这问题。)


Q:cmd未输出“Finished”,却输出如下错误,报告中无更新日志:
  1. Traceback (most recent call last):
  2.   File "changelog.py", line 103, in <module>
  3.     search = format_func.google_search(term, api_key, cse_id, num=2)
  4.   File "C:\Users\Eru\Desktop\Curseforge-Changelog-Compiler-1.0.0a\format_func.py", line 11, in google_search
  5.     result = service.cse().list(q=term, cx=cse, **kwargs).execute()
  6.   File "H:\Program_Files\python-3.6.4\lib\site-packages\oauth2client\_helpers.py", line 133, in positional_wrapper
  7.     return wrapped(*args, **kwargs)
  8.   File "H:\Program_Files\python-3.6.4\lib\site-packages\googleapiclient\http.py", line 844, in execute
  9.     raise HttpError(resp, content, uri=self.uri)
  10. googleapiclient.errors.HttpError: <HttpError 400 when requesting https://www.googleapis.com/customsearch/v1?q=(因人而异的内容)
复制代码
A:检查config中“api_key”与“cse_id”的数据是否正确。


Q:cmd输出“Finished”,但报告中无更新日志。
A:抱歉,这可能是CSE没有搜索到内容,暂时无解。


Q:cmd输出如下语句:
  1. ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。
复制代码
A:检查网络环境配置,见第六节第一步。


暂时就这些问题吧,有其他问题请回复。






欢迎光临 MC百科社群 (https://bbs.mcmod.cn/) MC百科|最大的MineCraft中文模组百科