解析***页面内容

Posted

技术标签:

【中文标题】解析***页面内容【英文标题】:parsing wikipedia page content 【发布时间】:2015-05-08 01:18:20 【问题描述】:

我正在寻找一个库来解析 html 页面,特别是***文章,例如:http://en.wikipedia.org/wiki/Railgun,我想提取文章的文本和图像(全尺寸或原始图像而不是拇指)。 那里有html解析器吗? 我宁愿不使用 wikimedia api,因为我似乎无法弄清楚如何提取文章的文本和它们的全尺寸图像。 感谢并为我的英语感到抱歉。

编辑:我忘了说最终结果应该是有效的html

编辑:我得到了 json 字符串:https://en.wikipedia.org/w/api.php?action=parse&pageid=218930&prop=text&format=json 所以现在我需要解析 json。 我知道在javascript中我可以做这样的事情: var pageHTML = JSON.parse("json 字符串").parse.text["*"]; 既然我对 html/javascript 和 python 有一点了解,那我怎样才能发出那个 http 请求并在 python 3 中解析 json 呢?

【问题讨论】:

【参考方案1】:

我认为你应该能够使用 webapi 获取所有内容,

https://www.mediawiki.org/wiki/API:Main_page https://www.mediawiki.org/wiki/API:Parsing_wikitext

或者你可以下载整个***

https://meta.wikimedia.org/wiki/Research:Data

【讨论】:

【参考方案2】:

你也可以从api中获取html,查看https://www.mediawiki.org/wiki/Extension:TextExtracts/pt上的信息,就像这个例子:https://en.wikipedia.org/w/api.php?action=query&prop=extracts&exchars=175&titles=hello%20world。

根据您需要的页面数量,如果页面量很大,您应该考虑使用公共转储。

【讨论】:

【参考方案3】:

我创建了一个名为 wikipedia-to-json(用 javascript 编写)的 Node.js module,它解析 wikipedia 文章中的 HTML,并返回结构化的 JSON 对象,这些对象按顺序描述文章的布局。 (标题、段落、图片、列表、副标题...)

如果您只想快速提取文本和部分并了解事物的外观,这可能会很有用。

【讨论】:

以上是关于解析***页面内容的主要内容,如果未能解决你的问题,请参考以下文章

在解析页面内容时删除 DocDocument 警告

HTTPS混合内容解析

HTTPS混合内容解析

BeautifulSoup 无法解析内容,因为页面加载速度太慢

如何在java中解析原始mime内容?

能用java相关技术解析Html页面,批量获取页面内容对应的xpath吗