From Wikipedia, the free encyclopedia
# what_links_here_count.py
# Author: Benc
# Purpose: Count the number of pages that link to a page by namespace and by
# redirect. Simply parses the list generated by a
# Special:Whatlinkshere page.
# Below: cut and paste everything from below "The following pages link to here:"
# Don't worry about extra linefeeds before and after the list.
txt="""
"""
import string
NAMESPACES = [ 'Talk',
'Category', 'Category talk',
'Help', 'Help talk',
'Image', 'Image talk',
'MediaWiki', 'MediaWiki talk',
'Template', 'Template talk',
'User', 'User talk',
'Wikipedia', 'Wikipedia talk']
REDIRECT = '(redirect page)'
totalCount = 0
mainCount = 0
redirectCount = 0
namespaceCount = [0] * len(NAMESPACES)
# Remove leading and trailing whitespace; change to array by newline
txt = string.strip(txt).split('\n')
for cur in txt:
if len(cur) == 0:
continue
totalCount += 1
if cur.find(REDIRECT) >= 0:
redirectCount += 1
else:
colon = cur.find(':')
if colon >= 0 and cur[:colon] in NAMESPACES:
namespaceCount[NAMESPACES.index(cur[:colon])] += 1
else:
mainCount += 1
print 'Count by namespace (%d total):' % (totalCount)
print '%4d from Main' % (mainCount)
for (i, count) in enumerate(namespaceCount):
if count > 0:
print '%4d from %s' % (count, NAMESPACES[i])
if redirectCount > 0:
print '%4d redirects' % (redirectCount)