دریافت اطلاعات از ویکیپدیا به دو روش مقدور است.
این راهنما برای استخراج اطلاعات به روش دوم طراحی شدهاست؛ برای استخراج آمار و اطلاعات به روش اول ویکیپدیا:استخراج آمار از دیتابیس تول سرور را مطالعه نمائید.
مقایسه ٔروشهای استخراج آمار از طریق مدیاویکی یا دیتابیس به شرح زیر است.
برای مشاهده دستورها و کتابخانههای API:Query به اینجا کنید.
در زیر تعدادی کوئری را مشاهده میکنید که می توانید متنهای زیر را بعد از http://fa.wikipedia.org/w/ کپی کنید (یا بر روی پیوندهای آبی کلیک کنید) تا آمار مورد نظرتان ارائه گردد.
دستور:api.php?action=query&list=allcategories&acfrom=حزبهای_سیاسی&aclimit=500
http://fa.wikipedia.org/w/api.php?action=query&list=allcategories&acfrom=حزبهای_سیاسی&aclimit=500
دستور:api.php?action=query&generator=allpages&gaplimit=50&gapfrom=پیشه&prop=links|categories
مثلاً example.com
دستور:api.php?action=query&list=exturlusage&eulimit=500&format=rawfm&euquery=example.com
دستور:api.php?action=query&list=protectedtitles&ptlevel=sysop&ptlimit=50&ptprop=expiry|comment
دستور:api.php?action=query&prop=categories&titles=%D8%A7%DB%8C%D8%B1%D8%A7%D9%86&clshow=!hidden&cllimit=500
دستور:api.php?action=query&list=allusers&augroup=sysop&aulimit=50
http://fa.wikipedia.org/w/api.php?action=query&list=allusers&augroup=sysop&aulimit=50
مثلا: ایران:
دستور:api.php?action=query&list=backlinks&bltitle=ایران&bllimit=50&blfilterredir=redirects
مثلا: ایران:
دستور:api.php?action=query&list=backlinks&bltitle=ایران&bllimit=50
http://fa.wikipedia.org/w/api.php?action=query&list=backlinks&bltitle=ایران&bllimit=50
https://www.mediawiki.org/w/api.php?action=help&modules=query%2Blinterrors
https://fa.wikipedia.org/w/api.php?action=compare&fromrev=24275599&torev=26278079
میتوان از کوئریها در رباتهای پایتون استفاده کرد مزیت آنها نسبت به توابع و کلاسهای موجود در پایویکیپدیا (به انگلیسی: pywikipedia) سرعت بیشتر آنها است و نسبت به کوئریهای اسکیوال این مزیت را دارد که ربات قابلیت اجرا بر روی کامپیوترهای خانگی را نیز دارد و محدود به رباتهای تولسرور نخواهد بود.
به صورت پیشفرض en > fa
import query
def englishdictionry( link ,first_site='en',second_site='fa'):
if link.find('#')!=-1:
return False
if link==u'':
return False
link=link.replace(u' ',u'_')
site = wikipedia.getSite(first_site)
sitesecond= wikipedia.getSite(second_site)
params = {
'action': 'query',
'prop': 'langlinks',
'titles': link,
'redirects': 1,
'lllimit':500,
}
try:
interwikiname = query.GetData(params,site, encodeTitle = True)
cases=interwikiname [u'query'][u'pages'][0][u'langlinks']
for item in cases:
if item[u'lang']==second_site:
intersec=item[u'*']
break
result=intersec
if result.find('#')!=-1:
return False
return result
except:
return False
import query
def templatequery(link,site='fa'):
temps=[]
link=link.split(u'#')[0].strip()
if link==u'':
return False
link=link.replace(u' ',u'_')
site = wikipedia.getSite(site)
params = {
'action': 'query',
'prop':'templates',
'titles': link,
'redirects': 1,
'tllimit':500,
}
try:
templatename = query.GetData(params,site, encodeTitle = True)
our_templates=templatename[u'query'][u'pages'][0][u'templates']
for temp in our_templates:
temps.append(temp[u'title'])
return temps
except:
return False
import query
def catquery(link,site='fa',hidden=True):
cats=[]
link=link.split(u'#')[0].strip()
if link==u'':
return False
link=link.replace(u' ',u'_')
site = wikipedia.getSite(site)
if hidden:
params = {
'action': 'query',
'prop': 'categories',
'titles': link,
'redirects': 1,
'cllimit':500,
}
else:
params = {
'action': 'query',
'prop': 'categories',
'titles': link,
'redirects': 1,
'clshow':'!hidden',
'cllimit':500,
}
try:
categoryname = query.GetData(params,site, encodeTitle = True)
our_categories=categoryname[u'query'][u'pages'][0][u'categories']
for cat in our_categories:
cats.append(cat[u'title'])
return cats
except:
return False
رباتهای استفاده کننده از کوئری مدیاویکی