Programmeren in Python/Pywikibot: verschil tussen versies

Uit Wikibooks
Verwijderde inhoud Toegevoegde inhoud
Edoderoo (overleg | bijdragen)
voorbeeld cat/subcat
Edoderoo (overleg | bijdragen)
Alle pagina's uit een categorie, met andere taalversies
Regel 22: Regel 22:
print(page.title())
print(page.title())
print("Klaar")
print("Klaar")
</source>

==Alle pagina's uit een categorie, met andere taalversies==
<source lang="python">
import pywikibot
from pywikibot import pagegenerators


def show_cat_all_pages(lng,catname, leveldeep): #print all page-titles from *category* in language *lng*
site = pywikibot.Site(lng)
cat = pywikibot.Category(site,catname)
catgen = pagegenerators.CategorizedPageGenerator(cat,leveldeep)
for pagefound in catgen:
yield pagefound

def gen_cat_all_pages(lng,catname,leveldeep):
site = pywikibot.Site()
cat = pywikibot.Category(site,catname)
gen = pagegenerators.CategorizedPageGenerator(cat,3)

for page in show_cat_all_pages('nl',cat.title(),1):
print("[%s]-[%s]" % ( 'nl',page.title()))
#print("Now go international!")
for interlinks in cat.iterlanglinks():
#print("Site: [%s]" % (interlinks.site.lang))
#print("Title: [%s]" % (interlinks.title))
for page in show_cat_all_pages(interlinks.site.lang,interlinks.title,3):
print("[%s]-[%s]" % ( interlinks.site.lang,page.title()))
</source>
</source>

Versie van 28 dec 2015 10:10

Pywikibot is een class library in Python om Wikimedia-projecten te kunnen lezen en schrijven. Uiteraard kunnen Wikipedia-pagina's worden bewerkt, maar ook afbeeldingen op Commons of Wikidata kunnen worden bewerkt.

Wikidata redirect

 x = pywikibot.ItemPage(repo, 'Q18362289')  #this one is a redirect
 while x.isRedirectPage():   #controleer of dit een redirect is
   x = pywikibot.ItemPage(repo,x.getRedirectTarget().title())  #lees de redirected page
 print("Ik heb 'm [%s]" % (x.title()))

Alle pagina's uit een categorie

 import pywikibot
 from pywikibot import pagegenerators

 print("Begonnen")
 site = pywikibot.Site() #default site of user
 cat = pywikibot.Category(site,'Categorie:Woerden')
 gen = pagegenerators.CategorizedPageGenerator(cat,True) #generator geeft alle pagina's uit de categorie, tweede parameter zegt: ook sub-cats meenemen
 #gen = pagegenerators.CategorizedPageGenerator(cat,1) #generator geeft alle pagina's uit de categorie, tweede parameter zegt: 1 sub-cat diep doorlopen
 for page in gen:
   print(page.title())
 print("Klaar")

Alle pagina's uit een categorie, met andere taalversies

import pywikibot
from pywikibot import pagegenerators


def show_cat_all_pages(lng,catname, leveldeep):  #print all page-titles from *category* in language *lng*
  site = pywikibot.Site(lng)
  cat = pywikibot.Category(site,catname)
  catgen = pagegenerators.CategorizedPageGenerator(cat,leveldeep)
  
  for pagefound in catgen:
    yield pagefound

def gen_cat_all_pages(lng,catname,leveldeep):
 site = pywikibot.Site()
 cat = pywikibot.Category(site,catname)
 gen = pagegenerators.CategorizedPageGenerator(cat,3)

 for page in show_cat_all_pages('nl',cat.title(),1):
   print("[%s]-[%s]" % ( 'nl',page.title()))
  
 #print("Now go international!")  
 for interlinks in cat.iterlanglinks():
   #print("Site:  [%s]" % (interlinks.site.lang))
   #print("Title: [%s]" % (interlinks.title))
   for page in show_cat_all_pages(interlinks.site.lang,interlinks.title,3):
     print("[%s]-[%s]" % ( interlinks.site.lang,page.title()))
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.