Programmeren in Python/Pywikibot: verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
→Alle pagina's uit een categorie, met andere taalversies: -> om de code te laten beginnen |
→Alle pagina's uit een categorie, met andere taalversies: - iets meer gestandaardiseerd |
||
Regel 26: | Regel 26: | ||
==Alle pagina's uit een categorie, met andere taalversies== |
==Alle pagina's uit een categorie, met andere taalversies== |
||
<source lang="python"> |
<source lang="python"> |
||
import pywikibot |
import pywikibot |
||
from pywikibot import pagegenerators |
from pywikibot import pagegenerators |
||
Regel 39: | Regel 41: | ||
def gen_cat_all_pages(lng,catname,leveldeep): |
def gen_cat_all_pages(lng,catname,leveldeep): |
||
site = pywikibot.Site() |
site = pywikibot.Site(lng) |
||
cat = pywikibot.Category(site,catname) |
cat = pywikibot.Category(site,catname) |
||
gen = pagegenerators.CategorizedPageGenerator(cat, |
gen = pagegenerators.CategorizedPageGenerator(cat,leveldeep) |
||
for page in show_cat_all_pages( |
for page in show_cat_all_pages(lng,cat.title(),leveldeep): |
||
print("[%s]-[%s]" % ( 'nl',page.title())) |
#print("[%s]-[%s]" % ( 'nl',page.title())) |
||
yield page |
|||
#print("Now go international!") |
#print("Now go international!") |
||
Regel 50: | Regel 53: | ||
#print("Site: [%s]" % (interlinks.site.lang)) |
#print("Site: [%s]" % (interlinks.site.lang)) |
||
#print("Title: [%s]" % (interlinks.title)) |
#print("Title: [%s]" % (interlinks.title)) |
||
for page in show_cat_all_pages(interlinks.site.lang,interlinks.title, |
for page in show_cat_all_pages(interlinks.site.lang,interlinks.title,leveldeep): |
||
print("[%s]-[%s]" % ( interlinks.site.lang,page.title())) |
#print("[%s]-[%s]" % ( interlinks.site.lang,page.title())) |
||
yield page |
|||
#main |
|||
print("Begonnen") |
print("Begonnen") |
||
gen_cat_all_pages('nl','Woerden', |
for page in gen_cat_all_pages('nl','Woerden',1): |
||
print("[%s]-[%s]" % (page.site.lang, page.title())) |
|||
print("Klaar") |
|||
</source> |
</source> |
Versie van 28 dec 2015 17:56
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(lng)
cat = pywikibot.Category(site,catname)
gen = pagegenerators.CategorizedPageGenerator(cat,leveldeep)
for page in show_cat_all_pages(lng,cat.title(),leveldeep):
#print("[%s]-[%s]" % ( 'nl',page.title()))
yield page
#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,leveldeep):
#print("[%s]-[%s]" % ( interlinks.site.lang,page.title()))
yield page
print("Begonnen")
for page in gen_cat_all_pages('nl','Woerden',1):
print("[%s]-[%s]" % (page.site.lang, page.title()))
print("Klaar")