问题标签 [pywikibot]

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 投票
1 回答
122 浏览

python - 如何使用 pywikibot 找到所有精选文章?

我有这段代码可以使用库 pywikibot 找到所有模板可疑的维基百科文章:

pages = pywikibot.Page(site, "Template:Dubious").getReferences(namespaces = 0)

现在我需要找到所有精选文章。我想它可以使用正确的搜索字符串来完成,但我不知道哪个是。

0 投票
1 回答
816 浏览

python - 如何在python中识别维基百科类别

我目前pywikibot用于获取给定维基百科页面的类别(例如,support-vector machine),如下所示。

我得到的结果是:

如您所见,我得到的结果包括许多维基百科的跟踪和维护类别,例如;

  • 类别:所有带有明确标记的黄鼠狼短语的文章
  • 分类:所有带有非来源陈述的文章
  • 类别:CS1 maint:使用编辑器参数
  • 等等

但是,我只感兴趣的类别是;

  • 类别:分类算法
  • 分类:统计分类
  • 分类:支持向量机

我想知道是否有办法获取所有tracing or maintenance维基百科类别,以便我可以将它们从结果中删除以仅获取信息类别。

或者,如果有任何其他方法可以从结果中消除它们,请建议我。

如果需要,我很乐意提供更多详细信息。

0 投票
1 回答
306 浏览

python - 如何在python中获取维基百科谈话页面中的内容

我目前正在使用以下代码来获取维基百科的页面内容。

但是,上面的代码似乎没有返回Talk pages维基百科的内容。例如,

更准确地说,我想获取此页面的内容:https ://en.wikipedia.org/w/index.php?title=Talk:Forensic_science&action=edit

如果需要,我很乐意提供更多详细信息。:)

0 投票
1 回答
197 浏览

python - 如何在 python 中从 pywikibot 获取重定向

我想知道pywikibotapi 是否允许检索给定维基百科文章的重定向。

我尝试了以下。

但是,我收到一条错误消息AttributeError: 'Page' object has no attribute 'showRedirects'

如果需要,我很乐意提供更多详细信息。

0 投票
1 回答
1133 浏览

python - 按部分从 Wikipedia API 获取纯文本

我正在尝试使用 wikipedia api 获取部分的纯文本(没有 html/css/特殊字符/字符,如 \n/links/images)。我试图用这段代码做到这一点

它返回此错误

exintro我需要使用参数获取文章介绍等文章部分

它返回纯文本。正是我需要的

0 投票
1 回答
239 浏览

wikipedia - 有没有办法在 pywikibot 替换命令中使用变量“当前页面的标题”?

我希望我的 pywikibot 删除

如果名称等于使用替换功能的页面标题,则来自维基百科信息框。有没有简单的方法可以做到这一点?

要使用的代码应该是这样的:

但我不确定这个选项是否存在于 pywikibot 中。

0 投票
1 回答
134 浏览

python - PyCharm 中 pywikibot 的问题

大家好,

我的 Python 安装遇到了一个非常具体的问题。我有一个使用安装了 pywikibot 的 venv 的 PyCharm 项目。每当我尝试导入模块时,都会出现以下错误:

它似乎已经损坏了自己,因为当天早些时候它没有任何问题。

我还在计算机其他地方的全局 Anaconda3 设置上安装了该模块。它在任何地方都可以正常工作,除了当我尝试在项目目录中执行它时,它变得很奇怪。比这更奇怪的是,如果我在子文件夹中执行解释器,它会再次工作。我完全不明白这里发生了什么……</p>

我尝试创建一个新项目,但我得到了相同的错误和行为。

我错过了什么?我不明白为什么它突然停止工作,尽管我对 venv 没有做任何事情。

PS:我在 Windows 10 上。

0 投票
0 回答
57 浏览

wikidata-api - 如何使用 WbQuantity() 函数添加带单位的数值(例如 1500 kW),使用教程失败

我正在使用 pywikibot 在 Python 中创建一个半自动化工具,以将数据从 TOP500 数据库导入 Wikidata,遵循教程和教程。(是我第一次用 Python 编程)。

它运行良好,直到脚本尝试在一个单位内提交一个数值(例如,Pleiades ( Q2442043)功耗 (P2791) → 4407.00 kW)。该脚本解析单位内的数值,然后将单位转换为给定的语句(kWkW(Q3320608)。但是,当将单元作为 URL(实体帮助器字符串)和语句(QXXXXX)传递时,脚本会引发错误(这是一个警告,因为我正在使用 try-except 处理错误):

我将我的项目上传到 GitHub。相关源代码可在addClaim()函数109 行找到。

0 投票
1 回答
104 浏览

scrapy - 为什么从 pywikibot 调用 scrapy spider 会出现 ReactorNotRestartable 错误?

我可以使用 CrawlerRunner 或 CrawlerProcess 从另一个 Python 脚本调用爬虫。但是,当我尝试从 pywikibot 机器人调用同一个蜘蛛调用类时,我收到 ReactorNotRestartable 错误。为什么会这样,我该如何解决?

这是错误:

这是调用我的scrapy spider的脚本。如果我只是从 main 调用类,它运行良好。

更新了两次实例化 AEAMetadata 类的简单测试。这是我的 pywikibot 机器人中失败的调用代码:

0 投票
3 回答
101 浏览

python - 如何在 Pywikibot 中使用 Airflow

pywikibotDAG 文件(或 DAG 文件导入的模块)中导入时,DAG 会损坏,并在 Web 服务器 UI 中引发错误:

我试图找到堆栈跟踪,但通过在airflow/logs. 运行airflow list_dags成功运行并且无助于调试问题(如this question所建议的那样),即使使用--report.

因此,我的问题是:如何在 Airflow DAG 任务中使用 Pywikibot?


我在下面添加了额外的信息来展示我到目前为止所做的尝试。找到答案后,可以将其删除以使问题更简洁。


以下是示例 DAG 的代码:


导入注意事项pywikibot:Pywikibot 需要一个配置文件,user-config.py位于工作目录中,除非环境PYWIKIBOT_NO_USER_CONFIG变量指定为0. 此类文件的示例:


我认为这可能是因为pywikibot's 日志记录(发送bool?)。verbose_output = 0可以通过添加的pywikibot配置文件 ( )来关闭详细日志记录user-config.py,但这并不能解决问题。

奇怪的是,运行这个简单的脚本

文件仍然输出user-config.py来自. 但是,当不导入 Airflow 时,它会在没有任何日志输出的情况下运行。但是,我尝试通过修改库来完全禁用日志记录,即使导入了 Airflow 也会禁用日志记录,但 DAG 仍被 Airflow 视为损坏。verbose_output=0pywikibotpywikibotlogging.logoutput()


手动触发 DAG 时,DAG 确实“启动”,但任务从不排队;他们仍然停留在状态None