问题标签 [wikipedia]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
5379 浏览

objective-c - 抓取和解析维基百科页面

我想知道在 Objective-C 中是否有任何现有的库或可以从 Objective-C 访问这些库,这些库可以让我抓取像这样格式化的页面。具体来说,所有日期和每个日期旁边的所有文本。如果不是,那么最好的方法是什么?常用表达?我听说NSString可能已经为此提供了内置方法。这是真的?

我环顾四周,看看是否有任何替代抓取的方法,例如 XML 文件或 API。我确实找到了一个 API,但我看到的唯一可用的客户端是其他语言的,它们似乎只能将内容发布到页面,而不是检索它。

编辑:所以我在这些链接中找到了有关 API 的更多信息:

我能够提出这个请求,它返回一些 HTML 编码的文本(格式是 XML,但它包括页面的文本等»a href=。我​​会继续查看文档,看看我能不能把这个出来好一点,如果不是,有没有关于解析这个的建议?

编辑 2:好的,多亏了这个文档页面,我能够检索数据的最简单和最干净的方法是使用这个构造的链接,它返回相关部分的原始数据(在 wiki 标记中)。但是,我想我需要解析它,但如果确实如此,它应该比整篇文章容易得多。

是否有人对解析 wiki 标记有任何建议,例如 Objective-C 中的以下内容?

我最终想要的是,我猜想一个NSDictionary或类似的集合将存储日期以及随附的信息片段。谢谢!

0 投票
4 回答
1171 浏览

database - 维基百科如何避免重复条目?

像维基百科这样大的网站如何对重复的条目进行分类?

从用户创建重复条目的那一刻起,我需要知道确切的过程等等。如果您不知道但您知道方法,请发送。

- - 更新 - -

假设有 wikipedia.com/horse,然后有人创建了 wikipedia.com/the_horse,这是一个重复的条目!它应该被删除或可能被重定向到原始页面。

0 投票
4 回答
22487 浏览

security - 黑名单IP数据库

是否有用于 Web 的黑名单 IP 的开放数据库?你知道有很多公共网络代理......比如维基百科全球封锁使用的黑名单。

0 投票
4 回答
749 浏览

c# - 如何从维基百科页面中删除所有标签或使页面更具可读性

我想去除所有标签,从维基百科中删除 [show][Hide] 的东西,或者是否有一些网站可以使页面格式更具可读性。

请我知道维基百科的可打印版本,但我不需要任何标签,因为我还有其他用途。因此,请仅回答原始问题,关于任何网站或网络服务或 php/C# 中的代码片段以从网页中删除标签。

也就像当我从 Firefox 复制一些列表时它替换<li>为 *,是否可以在 Firefox 中设置一些东西以返回一些其他不可读的字符,比如某种

  • 0 投票
    3 回答
    625 浏览

    wikipedia - 链接到维基百科摘要(谷歌地球的方式)

    我在我的应用程序中嵌入了 Wikipedia 页面,我想展示与 Google Earth 相同的简化摘要。(它给出了前几段和完整内容的链接,没有任何严肃的布局。)

    我知道 printable=true 选项,但这不是我想要的。

    0 投票
    5 回答
    1458 浏览

    mediawiki - 维基百科的“这里有哪些链接”是如何工作的?

    我最近使用了维基百科的功能“这里有什么链接”(位于任何条目左侧菜单的“工具箱”元素下),它让我开始想知道这个功能是如何工作的。
    我猜在链接之后搜索所有文章条目不是很有效,那么所有链接都存储在单独的数据库中吗?如果是这样,这是在编辑文章时更新还是在其他时间更新?

    谢谢。

    0 投票
    3 回答
    3913 浏览

    python - 如何通过python删除被大括号包围的块

    示例文本:字符串-> rev 标记中的内容(通过 lxml)。

    我正在尝试删除文本中的 {{BLOCKS}}。

    我使用以下正则表达式来删除简单的一行块:

    但是,这不会删除内容开头的第一个多行括号部分。如何删除多行的大括号块?


    编辑:

    答案的解决方案:

    0 投票
    6 回答
    2480 浏览

    python - 获取大量(但不是全部)维基百科页面

    对于我的一个NLP项目,我想从 Wikipedia 随机下载大量页面(比如 10000 个)。在不下载整个 XML 转储的情况下,这是我能想到的:

    1. 打开维基百科页面
    2. 以广度优先搜索方式解析链接的 HTML 并打开每个页面
    3. 在2中获得的页面上递归打开链接

    在第 2 步和第 3 步中,如果我达到了我想要的页数,我将退出。

    你会怎么做?请提出您能想到的更好的想法。

    答案:这是我的 Python 代码:

    0 投票
    3 回答
    1512 浏览

    language-agnostic - 展开树插入

    通过一些练习来磨练我的二叉树技能,我决定实现一个展开树,如Wikipedia: Splay tree中所述。

    我没有得到的一件事是关于插入的部分。

    它说:

    首先,我们在展开树中搜索 x。如果 x 不存在,那么我们不会找到它,而是找到它的父节点 y。其次,我们对 y 执行展开操作,这会将 y 移动到展开树的根部。第三,我们以适当的方式插入新节点 x 作为根。这样,y 要么是新根 x 的左孩子,要么是右孩子。

    我的问题是:与文章中的其他示例相比,上述文字似乎过于简洁,这是为什么呢?似乎这里遗漏了一些问题。例如,在将 y 节点展开到根节点后,我不能盲目地将根节点替换为 x,然后将 y 作为左子节点或右子节点附加到 x 上。

    让我们假设树中不存在该值。

    我有这棵树:

    我想插入 8。根据上面的描述,我将找到 6 节点,并且在正常的二叉树中,8 将作为 6 节点的右子节点添加,但是在这里我首先必须展开6 节点到根:

    那么这两个显然是错误的:

    在我看来,首先进行展开,然后将新值正确添加为根的唯一方法意味着我必须检查以下标准(将展开的节点添加为新根的左子节点):

    1. 我张开到根的节点小于新根(6 < 8)
    2. 我展开到根节点的最右边的子节点也小于新根节点 (20 8)

    但是,如果我要拆分我展开的节点,通过获取右子节点并将其附加为新节点的右子节点,我会得到:

    但是,这种简单的改变是否总能给我一棵正确的树?我很难想出一个例子,但这会导致以下情况:

    • 我要添加的新值高于临时根(我张开到根的节点),但也高于临时根的右孩子的最左边的孩子?

    IE。一棵树在张开后基本上看起来像这样,但在我替换根之前?

    我想添加 13,这将使新树像这样:

    或者这永远不会发生?

    我的第二个问题是这样的:将操作重写如下会不会容易得多:

    首先,我们在展开树中搜索 x。如果 x 不存在,那么我们不会找到它,而是找到它的父节点 y。然后我们将新节点添加为父节点的左子节点或右子节点。第三,我们在添加的节点上执行 splay 操作,这会将新值移动到 splay 树的根。

    强调我的以显示我所做的更改。

    0 投票
    5 回答
    3430 浏览

    iphone - 适用于 iPhone 的 MediaWiki 样式

    当您使用 iPhone 访问 en.wikipedia.org 时,您会被转发到 en.m.wikipedia.org,该页面的格式非常适合设备。我在自己的服务器上有 MediaWiki,我希望在我用 iPhone 访问我的网站时可以使用这种格式。有没有一种简单的方法可以实现这一点?我已经访问了 www.mediawiki.org/wiki/Manual:$wgHandheldForIPhone 和http://www.mediawiki.org/wiki/Extension:MobileSkin,但我没有任何反应。