Repository navigation
实现读正文和附件 - #98
Merged
Merged
实现读正文和附件#98
Conversation
初筛通过的通知要存成快照再交给抽取,快照里的文字就是核对时看的原文,所以正文要取得干净,附件要按页面上的顺序取全。 - 正文按建站系统的正文容器取(博达、WebPlus、TRS、GPower,加上北科研究生院和国科大的几种),认不出的记成「认不出正文」,不猜 - 正文里的链接记下文字的位置,地址按跳转后的网址解析成绝对地址,随 NoticePage 交给抽取 - 附件取正文里和附件区里的文件,以及正文里的图片;用 pypdf、python-docx、legacy-doc、openpyxl、xlrd 读出文字 - 下载不成的附件(比如要验证码)照样列出、文字留空,不上传文件 - 列表页和通知页共用一份解码网页的代码;抽取实验改用正式的读正文 - 比较结果写进总体设计 §5.2,选定的库写进 §5.1
Open
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
关联
Closes #40
改了什么
初筛通过的通知要存成快照再交给抽取。快照里的文字就是大家核对时看的原文,所以正文要取得干净,附件要按页面上的顺序取全。这个 PR 写一轮里的
Steps.read,也就是crawl/notice.py的read_notice。parse/notice.py):博达、WebPlus、TRS、GPower 两种,加上北科研究生院、国科大研招网的文章页和招生单位页、国科大前沿交叉学院。哪个都对不上的,这条通知记成「认不出正文」,补上那个系统的模板,不猜哪一块是正文。文字里段落各占一行,表格一行一行、单元格之间用 Tab 隔开。text里的起止位置,地址按跳转后的网址解析成绝对地址,随NoticePage.hyperlinks交给抽取的编号([任务] 句子、日期和链接的编号 #43 的Hyperlink)。Annex、中科院各所的wrap-appendix),博达的下载链接,TRS 写在页面脚本里的附件清单(只读字符串,不执行脚本),还有正文里的图片。编辑器的文件类型小图标、页脚的二维码、侧栏的「常用下载」不算。parse/files.py):pypdf 读 PDF,python-docx 读.docx,legacy-doc 读老的.doc,openpyxl 读.xlsx,xlrd 读.xls。图片的文字等 [任务] 图片和扫描件的文字识别 #47,压缩包不取文字。有的 PDF 把常用字映射成样子相同的康熙部首(「⽣」代替「生」),取出后换回常用字,不然证据和搜索都对不上。None;其他 4xx、5xx 抛StepError("http_status", "HTTP 403")。parse/webpage.py);补充基于编号的抽取评估和实验结果 #81 的抽取实验原来有一份自己的取正文代码,改用这一份。新加的依赖:pypdf、python-docx、legacy-doc、openpyxl、xlrd;开发依赖 types-openpyxl、types-xlrd。legacy-doc 没带类型标注,
crawler/typings/legacy_doc/里补了用到的部分。怎么验证的
crawler/./check.sh通过:生成类型一致性、格式、lint、Pyright 严格模式,217 项测试。parse/fixtures/notice/里自编的样例页(照真实页面的结构,文字全部换掉,来源见那里的 README),附件在测试里现生成,包括一个手写的小 PDF,用来复现康熙部首的问题;不连外网。Fetcher读了 45 个来源各 2 条通知,加上中科院几个所的 7 条,共 97 页;从中下载了 35 个附件。这些只存在本机,用来核对,不提交。97 页的正文都认得出,抽查的页面里没有混进导航、页脚和上一篇下一篇;27 个真实的 PDF、Word、Excel 都取出了文字,6 个.docx和文件里的全部文字逐段对过。影响
NoticePage多了hyperlinks;Attachment.data可以是None,一轮里这种附件只交名称和网址、不上传文件。将编号抽取接进一轮 #96 也给NoticePage加了hyperlinks,那边已经请作者去掉默认值,后合并的一边调整。