In [16]:
import pywikibot
import re
from pywikibot import pagegenerators
site = pywikibot.Site('en', 'wikipedia')
templatesearchname = 'hastemplate:commons -hastemplate:"commons category"'
templatenameregex = '^(wiki)?[cC]ommons?$'
project = pywikibot.Site('commons','commons')
for page in pywikibot.pagegenerators.SearchPageGenerator(templatesearchname):
    print(page.title)
    templates=pywikibot.textlib.extract_templates_and_params(page.text,remove_disabled_parts="yes",strip = "yes")
    for template in templates:
        #print(template)
        if re.match(templatenameregex,template[0]):
            if template[1].get("1") is not "":
                query=template[1].get("1")
            else: 
                query=str(page)
                query=re.sub('[[:en:',"",query)
                query=re.sub(']]',"",query)
                print(query)
            for result in pywikibot.pagegenerators.SearchPageGenerator(query, site=project): 
                print("test")
<bound method deprecated_args.<locals>.decorator.<locals>.wrapper of Page('2004 Indian Ocean earthquake and tsunami')>
WARNING: Http response status 500
WARNING: Non-JSON response received from server commons:commons; the server may be down.
Set gsrlimit = ['250']
WARNING: Waiting 5 seconds before retrying.
---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-16-349a36ab8927> in <module>
     19                 query=re.sub(']]',"",query)
     20                 print(query)
---> 21             for result in pywikibot.pagegenerators.SearchPageGenerator(query, site=project):
     22                 print("test")

/srv/paws/pwb/pywikibot/pagegenerators.py in SearchPageGenerator(query, total, namespaces, site)
   2636     if site is None:
   2637         site = pywikibot.Site()
-> 2638     for page in site.search(query, total=total, namespaces=namespaces):
   2639         yield page
   2640 

/srv/paws/pwb/pywikibot/data/api.py in __iter__(self)
   2805                 prev_limit, new_limit, previous_result_had_data)
   2806             if not hasattr(self, 'data'):
-> 2807                 self.data = self.request.submit()
   2808             if not self.data or not isinstance(self.data, dict):
   2809                 pywikibot.debug(

/srv/paws/pwb/pywikibot/data/api.py in submit(self)
   1987                 continue
   1988 
-> 1989             result = self._json_loads(rawdata)
   1990             if result is None:
   1991                 continue

/srv/paws/pwb/pywikibot/data/api.py in _json_loads(self, data)
   1807                                data=result)
   1808             return result or {}
-> 1809         self.wait()
   1810         return None
   1811 

/srv/paws/pwb/pywikibot/data/api.py in wait(self)
   2088         pywikibot.warning('Waiting %s seconds before retrying.'
   2089                           % self.retry_wait)
-> 2090         pywikibot.sleep(self.retry_wait)
   2091         # double the next wait, but do not exceed config.retry_max seconds
   2092         self.retry_wait = min(config.retry_max, self.retry_wait * 2)

/srv/paws/pwb/pywikibot/__init__.py in sleep(secs)
   1321     if secs >= 30:
   1322         stopme()
-> 1323     time.sleep(secs)
   1324 
   1325 

KeyboardInterrupt: 
In [ ]:
 
In [ ]: