This page is a translated version of the page Manual:Pywikibot/ and the translation is 0% complete.

Removes or adds categories to pages on a Mediawiki site.


The syntax is:

   python category action [-option]

where action can be one of the following.

add mass-add a category to a list of pages
remove remove category tag from all pages in a category
move move all pages in a category to another category
tidy tidy up a category by moving its articles into subcategories
clean assisted diffusing of large categories
tree show a tree of subcategories of a given category
listify make a list of all of the articles that are in a category

and option can be one of the following.

Options for add action

-person sort persons by their last name
-create If a page doesn't exist, do not skip it, create it instead
-redirect Follow redirects

Only for this action, page generator options are supported.

Options for listify action

* -overwrite   - This overwrites the current page with the list even if something is already there.
* -showimages  - This displays images rather than linking them in the list.
* -talkpages   - This outputs the links to talk pages of the pages to be listified in addition to the pages themselves.

Options for remove action

* -nodelsum    - This specifies not to use the custom edit summary as the deletion reason.
                 Instead, it uses the default deletion reason for the language, which is "Category was disbanded" in English.

Options for move action

-hist Creates a nice wikitable on the talk page of target category that contains detailed page history of the source category.
-nodelete Don't delete the old category after move
-nowb Don't update the wikibase repository
-allowsplit If that option is not set, it only moves the talk and main page together.
-mvtogether Only move the pages/subcategories of a category, if the target page (and talk page, if -allowsplit is not set) doesn't exist.
-keepsortkey Use sortKey of the old category also for the new category.

If not specified, sortKey is removed.

An alternative method to keep sortKey is to use -inplace option.

Options for tidy action

Filter the articles in the specified namespaces. Separate multiple namespace numbers or names with commas.



Options for several actions

-rebuild reset the database
-from: The category to move from (for the move option)

Also, the category to remove from in the remove option Also, the category to make a list of in the listify option

See note below table.

-to: The category to move to (for the move option)

Also, the name of the list to make in the listify option

See note below table.

-batch Don't prompt to delete emptied categories (do it automatically).
-summary: Pick a custom edit summary for the bot.
-inplace Use this flag to change categories in place rather than rearranging them.
-recurse Recurse through all subcategories of categories.
-pagesonly While removing pages from a category, keep the subpage links and do not remove them
-match Only work on pages whose titles match the given regex (for move and remove actions).
-depth: The max depth limit beyond which no subcategories will be listed.
For options -from and -to:

If the category names have spaces in them you may need to use a special syntax in your shell so that the names aren't treated as separate parameters. For instance, in BASH, use single quotes, e.g. -from:'Polar bears'. For categories containing a colon you must explicitly prepend the namespace prefix category: or its localized equivalent.

For actions tidy and tree, the bot will store the category structure locally in category.dump. This saves time and server load, but if it uses these data later, they may be outdated; use the -rebuild parameter in this case. For example, to create a new category from a list of persons, type:

 python category add -person

and follow the on-screen instructions.

Or to do it all from the command-line, use the following syntax:

 python category move -from:US -to:"United States"

This will move all pages in the category US to the category United States.


参数 描述
-cat 工作于指定分类中的所有页面。 参数也可提供为“-cat:分类名”或“-cat:分类名|起始索引”(也可使用 # 而非 |,以下同)
-catr 类似 -cat,同时递归包含指定分类的子分类、子子分类...中的页面。参数也可提供为“-catr:分类名”或“-catr:分类名|起始标题”。
-subcats 工作于指定分类的所有子分类。 参数也可提供为“-subcats:分类名”或“-subcats:分类名|起始标题”。
-subcatsr 类似 -subcats,但包括子子分类等。参数也可提供为“-subcatsr:分类名”或“-subcatsr:分类名|起始标题”。
-uncat 工作于所有未分类的页面。
-uncatcat 工作于所有未分类的分类。
-uncatfiles 工作于所有未分类的文件。
-file 从指定名称的文本文件读取要处理的页面列表。文件中的页面标题可以有方括号包裹(例如 [[Page]]),或用新行分隔。也支持用参数提供为“-file:文件名”。
-filelinks 工作于使用了指定图像/媒体文件的所有页面。 也可用参数提供为“-filelinks:文件名”。
-search 工作于在MediaWiki搜索结果中找到的所有页面,适用于所有名字空间
-logevents 工作于在指定的“特殊:日志”中找到的条目。 此值可以是以下值的逗号分隔列表:




spamblacklist, titleblacklist, gblblock, renameuser, globalauth, gblrights, gblrename, abusefilter, massmessage, thanks, usermerge, block, protect, rights, delete, upload, move, import, patrol, merge, suppress, tag, managetags, contentmodel, review, stable, timedmediahandler, newusers

将使用默认页面数 10。


-logevents:move gives pages from move log (usually redirects)
-logevents:delete,,20 gives 20 pages from deletion log
-logevents:protect,Usr gives pages from protect by user Usr
-logevents:patrol,Usr,20 gives 20 patroled pages by Usr
-logevents:upload,,20121231,20100101 gives upload pages in the 2010s, 2011s, and 2012s
-logevents:review,,20121231 gives review pages since the beginning till the 31 Dec 2012
-logevents:review,Usr,20121231 gives review pages by user Usr since the beginning till the 31 Dec 2012
某些情况下必须写为 -logevents:"move,Usr,20"
-interwiki 工作于指定页面及其他语言中的等效页面。 这可能用于对抗跨站点垃圾信息发布。注意:这样机器人将会修改若干个 wiki 网站上的页面,这可能缺乏充足测试,故请检查您的编辑!
-links 工作于指定页面所链接的所有页面。 也可用参数提供为“-links:页面标题”。
-liverecentchanges 工作于“最近更改”实时供稿列出的页面。 如果设为 -liverecentchanges:x,将在最后 x 个最近更改上运行。
-imagesused 工作于指定页面包含的所有图像上。 也可用参数提供为“-imagesused:页面标题”。
-newimages 工作于最新上传的图像。 如果提供为 -newimages:x,将在最新上传的 x 个图像上运行。
-newpages 工作于最新创建的页面。 如果提供为 -newpages:x,将在最新创建的 x 个页面上运行。
-recentchanges 工作于最近更改的页面。 如果提供为 -recentchanges:x,将在最近更改的 x 个页面上运行。如果提供为 -recentchanges:offset,duration,将使用“自偏移”(offset)的 x 分钟开始“持续”(duration)y 分钟的时间范围。

-recentchanges:20 - 提供最近更改的 20 个页面
-recentchanges:120,70 - will give pages with 120 offset minutes and 70 minutes of timespan
-recentchanges:visualeditor,10 - 提供最近更改且标记有“visualeditor”的 10 个页面
-recentchanges:"mobile edit,60,35" - 将检索标有'mobile edit'(移动版编辑)且在指定偏移和持续时间范围内的页面

-unconnectedpages Work on the most recent unconnected pages to the Wikibase repository. Given as -unconnectedpages:x, will work on the x most recent unconnected pages.
-ref 工作于所有链接到指定页面的页面。 参数可提供为“-ref:引用的页面标题”。
-start 指定机器人应从哪个标题开始按字母顺序遍历 home wiki 的所有页面。 参数可提供为“-start:页面标题”。 也可以包含一个名字空间。 例如“-start:Template:!”将使机器人工作于模板名字空间的所有页面。 默认值为 start:!
-prefixindex Work on pages commencing with a common prefix.
-transcludes Work on all pages that use a certain template. Argument can also be given as "-transcludes:Title".
-unusedfiles Work on all description pages of images/media files that are not used anywhere. Argument can be given as "-unusedfiles:n" where n is the maximum number of articles to work on.
-lonelypages Work on all articles that are not linked from any other article. Argument can be given as "-lonelypages:n" where n is the maximum number of articles to work on.
-unwatched 工作于所有未被任何人监视的条目。 参数可为“-unwatched:n”,n 是最多返回的条目数量。
-property:name 工作于所有具指定属性的页面,来自Special:PagesWithProp。
-usercontribs 工作于指定用户编辑过的所有条目。 (例如:-usercontribs:DumZiBoT)
-weblink 工作于包含指定外部链接的所有条目;可提供为“-weblink:url”
-withoutinterwiki 工作于所有不含跨语言链接的页面。 也可将参数提供为“-withoutinterwiki:n”,n 是要获取的数量。
-mysqlquery 执行一条 Mysql 查询,例如 "SELECT page_namespace, page_title, FROM page WHERE page_namespace = 0",并工作于返回的结果的页面上。另见 手册:Pywikibot/MySQL
-sparql 执行一条SPARQL SELECT查询字符串,包含?item,并工作于返回结果的页面上。
-sparqlendpoint 指定 SPARQL 端点网址(可选) (例如:-sparqlendpoint:
-searchitem Takes a search string and works on Wikibase pages that contain it. Argument can be given as "-searchitem:text", where text is the string to look for, or "-searchitem:lang:text", where lang is the language to search items in.
-random 工作于 Special:Random 所返回的随机页面上。 参数可提供为“-random:n”,n 是要返回的页面数量。
-randomredirect 工作于 Special:RandomRedirect 所返回的随机重定向页。 参数可提供为“-randomredirect:n”,n 是返回的页面数量。
-google 工作于 Google 搜索结果中找到的所有页面上。 需要一个 Google Web API 许可密钥。 注意,Google 不再提供许可密钥。 操作指南另见 中的 google_key。 也可用“-google:搜索字符串”提供参数。
-yahoo 工作于 Yahoo 搜索中找到的所有页面。 依赖于 Python 模块 pYsearch。 操作指南另见 中的 yahoo_appid。
-page 工作于单个页面。 也可用参数“-page:页面标题”提供,并可多次指定来提供多个页面。
-pageid 工作于单个 pageid。 参数也可提供为“-pageid:pageid1,pageid2,.”或“-pageid:'pageid1|pageid2|..'”,并支持多次指定。
-linter 工作于包含 lint 错误的页面。 所用站点上必须已启用 Linter 扩展。 -linter 会选择所有分类。 -linter:high、-linter:medium 或 -linter:low 根据优先级选择分类。 可用逗号间隔来提供多个分类,如 -linter:cat1,cat2,cat3 添加“/int”标识要开始查询的 Lint ID:例如 -linter:high/10000 -linter:show 只显示可用分类。
参数 描述
-catfilter 过滤页面生成器的结果,只返回指定分类中的页面。 另见 -cat 生成器的参数格式。
-grep A regular expression that needs to match the article otherwise the page won't be returned. Multiple -grep:regexpr can be provided and the page will be returned if content is matched by any of the regexpr provided. Case insensitive regular expressions will be used and dot matches any character, including a newline.
-grepnot Like -grep, but return the page only if the regular expression does not match.
-intersect 工作于提供的全部生成器的交叉点。
-limit 与其他参数配合使用时,-limit:n 指定了最多处理 n 个页面。
Filter the page generator to only yield pages in the specified namespaces. Separate multiple namespace numbers or names with commas.


-ns:0,2,4 -ns:Help,MediaWiki

You may use a preleading "not" to exclude the namespace. Examples:

-ns:not:2,3 -ns:not:Help,File

If used with -newpages/-random/-randomredirect/-linter generators, -namespace/-ns must be provided before -newpages/-random/-randomredirect/-linter. If used with -recentchanges generator, efficiency is improved if -namespace is provided before -recentchanges.

If used with -start generator, -namespace/-ns shall contain only one value.
-onlyif 页面需要包含特定声明,否则不返回数据项。 格式为属性 = 值,限定符 = 值。 可以传递多个(或 none)限定符,以逗号分隔。

P1=Q2 (属性 P1 必须包含值 Q2)
P3=Q4,P5=Q6,P6=Q7 (property P3 with value Q4 and qualifiers: P5 with value Q6 and P6 with value Q7)

值可以是页面ID,下列格式的坐标: latitude,longitude[,precision] (所有值为十进制表示,年份,或纯字符串。 可以多次提供该参数,仅返回存在所有声明的项目页。 参数也可提供为"-onlyif:expression"。
-onlyifnot 页面必须不含该声明,否则将不返回数据项。 用法和例子见上方 -onlyif
-ql 基于页面质量过滤页面。 仅在 contentmodel 等于“proofread-page”时适用,否则无效果。 有效值是范围 0-4。 可以用逗号分隔多个值。
-subpage -subpage:n filters pages to only those that have depth n i.e. a depth of 0 filters out all pages that are subpages, and a depth of 1 filters out all pages that are subpages of subpages.
-titleregex 条目标题必须匹配一个正则表达式,否则不返回该页面。 可提供多个 -titleregex:regexpr,匹配任意一个正则表达式的页面将被返回。 正则表达式将不区分大小写,并且.(点)匹配任意字符。
-titleregexnot 类似-titleregex,但仅返回正则表达式不匹配的页面。

注意 注意: Generators and Filters are available for add action only. tidy and listify action only accepts namespace filter


这些选项将覆盖 设置中的配置。

参数 描述 配置变量
-dir:路径 从路径给出的目录中读取bot的配置数据,而不是从默认目录中读取。  
-config:file The user config filename. Default is
-lang:xx 设置要使用的wiki的语言,覆盖user-config.py中的配置。xx应该是语言代码。 mylang
-family:xyz 设置你想要工作的wiki的系列,例如维基百科,维基词典,维基导游,...... 这将覆盖user-config.py中的配置。 family
-user:xyz 以用户'xyz'而不是默认用户名登录。 usernames
-daemonize:xyz 控制权立即交回终端,标准输出(stdout)和标准错误(stderr)重定向到文件xyz。(仅用于不需要从“标准输入”输入内容的机器人)。  
-help 显示帮助文本。  
-log 启用日志文件,默认文件名“script_name-bot.log”,日志存储在logs子目录中。 log
-log:xyz 启用日志文件,文件名'xyz'。 logfilename
-nolog 禁用日志文件(如果默认启用)。  
-maxlag 设置新的maxlag参数,单位秒。 数据库服务器高压力时机器人编辑的延迟秒数。config.py中设置有默认值。 maxlag
设置机器人在保存页面之间的最小间隔时间(单位:秒)。 put_throttle
启用日志文件并包括“item”组件的广泛调试数据(如果使用形式二,则包括所有组件)。 debug_log
使机器人提供额外的控制台输出内容,这可能对调试有益。 verbose_output
切换config.py或user-config.py中的cosmetic_changes设置,使其反转。 其他设置和限制不受影响。 cosmetic_changes
-simulate 禁用对服务器的写入。 适合用于测试和调试新编写的代码(如果设置,不会做任何实际更改,只显示将更改的内容)。 simulate
-<config var>:n 您可以使用所有给定的数字配置变量作为选项,并使用命令行进行修改。  

See also