Lab 2 - Hyperlink Networks

Professor Brian Keegan
Department of Information Science, CU Boulder
This notebook is copyright and made available under the Apache License v2.0 license.

This is the second of five lab notebooks that will explore how to do some introductory data extraction and analysis from Wikipedia data. This lab will extend the methods in the prior lab about analyzing a single article's revision histories and use network science methods to analyze the networks of hyperlinks around a single article. You do not need to be fluent in either to complete the lab, but there are many options for extending the analyses we do here by using more advanced queries and scripting methods.

Acknowledgements
I'd like to thank the Wikimedia Foundation for the PAWS system and related Wikitech infrastructure that this workbook runs within. Yuvi Panda, Aaron Halfaker, Jonathan Morgan, and Dario Taraborelli have all provided crucial support and feedback.

Confirm that basic Python commands work

a = 3
b = 4
a**b
81

Import modules and setup environment

Load up all the libraries we'll need to connect to the database, retreive information for analysis, and visualize results.

# Makes the plots appear within the notebook
%matplotlib inline

# Two fundamental packages for doing data manipulation
import numpy as np                   # http://www.numpy.org/
import pandas as pd                  # http://pandas.pydata.org/

# Two related packages for plotting data
import matplotlib.pyplot as plt      # http://matplotlib.org/
import seaborn as sb                 # https://stanford.edu/~mwaskom/software/seaborn/

# Package for requesting data via the web and parsing resulting JSON
import requests
import json
from bs4 import BeautifulSoup

# Two packages for accessing the MySQL server
import pymysql                       # http://pymysql.readthedocs.io/en/latest/
import os                            # https://docs.python.org/3.4/library/os.html

# Packages for analyzing complex networks
import networkx as nx                # https://networkx.github.io/
import igraph as ig

# Setup the code environment to use plots with a white background and DataFrames show more columns and rows
sb.set_style('whitegrid')
pd.options.display.max_columns = 100
pd.options.display.max_rows = 110

Define the name of the article you want to use for the rest of the lab.

page_title = "2013 Egyptian coup d'état"
#practice calling APIwith Alber Einsten page
_S="https://en.wikipedia.org/w/api.php?action=query&format=json&prop=langlinks&titles=Albert+Einstein&llprop=autonym|langname&lllimit=500"
    
req = requests.get(_S)

json_string = json.loads(req.text)
    
#run the string and it spits back the page name in every other lang
json_string
{'batchcomplete': '',
 'query': {'pages': {'736': {'langlinks': [{'*': 'Albert Einstein',
      'autonym': 'Afrikaans',
      'lang': 'af',
      'langname': 'Afrikaans'},
     {'*': 'Albert Einstein',
      'autonym': 'Alemannisch',
      'lang': 'als',
      'langname': 'Alemannisch'},
     {'*': 'አልበርት አይንስታይን',
      'autonym': 'አማርኛ',
      'lang': 'am',
      'langname': 'Amharic'},
     {'*': 'Albert Einstein',
      'autonym': 'aragonés',
      'lang': 'an',
      'langname': 'Aragonese'},
     {'*': 'Albert Einstein',
      'autonym': 'Ænglisc',
      'lang': 'ang',
      'langname': 'Old English'},
     {'*': 'ألبرت أينشتاين',
      'autonym': 'العربية',
      'lang': 'ar',
      'langname': 'Arabic'},
     {'*': 'البرت اينشتاين',
      'autonym': 'مصرى',
      'lang': 'arz',
      'langname': 'Egyptian Arabic'},
     {'*': 'এলবাৰ্ট আইনষ্টাইন',
      'autonym': 'অসমীয়া',
      'lang': 'as',
      'langname': 'Assamese'},
     {'*': 'Albert Einstein',
      'autonym': 'asturianu',
      'lang': 'ast',
      'langname': 'Asturian'},
     {'*': 'Albert Einstein',
      'autonym': 'Aymar aru',
      'lang': 'ay',
      'langname': 'Aymara'},
     {'*': 'Albert Eynşteyn',
      'autonym': 'azərbaycanca',
      'lang': 'az',
      'langname': 'Azerbaijani'},
     {'*': 'آلبرت آینشتاین',
      'autonym': 'تۆرکجه',
      'lang': 'azb',
      'langname': 'تۆرکجه'},
     {'*': 'Альберт Эйнштейн',
      'autonym': 'башҡортса',
      'lang': 'ba',
      'langname': 'Bashkir'},
     {'*': 'Alberts Einšteins',
      'autonym': 'žemaitėška',
      'lang': 'bat-smg',
      'langname': 'Samogitian'},
     {'*': 'Albert Einstein',
      'autonym': 'Bikol Central',
      'lang': 'bcl',
      'langname': 'Bikol Central'},
     {'*': 'Альберт Эйнштэйн',
      'autonym': 'беларуская',
      'lang': 'be',
      'langname': 'Belarusian'},
     {'*': 'Альбэрт Айнштайн',
      'autonym': 'беларуская (тарашкевіца)\u200e',
      'lang': 'be-x-old',
      'langname': 'беларуская (тарашкевіца)\u200e'},
     {'*': 'Алберт Айнщайн',
      'autonym': 'български',
      'lang': 'bg',
      'langname': 'Bulgarian'},
     {'*': 'Albert Einstein',
      'autonym': 'bamanankan',
      'lang': 'bm',
      'langname': 'Bambara'},
     {'*': 'আলবার্ট আইনস্টাইন',
      'autonym': 'বাংলা',
      'lang': 'bn',
      'langname': 'Bangla'},
     {'*': 'আলবার্ট আইনস্টাইন',
      'autonym': 'বিষ্ণুপ্রিয়া মণিপুরী',
      'lang': 'bpy',
      'langname': 'Bishnupriya'},
     {'*': 'Albert Einstein',
      'autonym': 'brezhoneg',
      'lang': 'br',
      'langname': 'Breton'},
     {'*': 'Albert Einstein',
      'autonym': 'bosanski',
      'lang': 'bs',
      'langname': 'Bosnian'},
     {'*': 'Альберт Айнштайн',
      'autonym': 'буряад',
      'lang': 'bxr',
      'langname': 'буряад'},
     {'*': 'Albert Einstein',
      'autonym': 'català',
      'lang': 'ca',
      'langname': 'Catalan'},
     {'*': 'Albert Einstein',
      'autonym': 'Chavacano de Zamboanga',
      'lang': 'cbk-zam',
      'langname': 'Chavacano de Zamboanga'},
     {'*': 'Albert Einstein',
      'autonym': 'Mìng-dĕ̤ng-ngṳ̄',
      'lang': 'cdo',
      'langname': 'Min Dong Chinese'},
     {'*': 'Эйнштейн, Альберт',
      'autonym': 'нохчийн',
      'lang': 'ce',
      'langname': 'Chechen'},
     {'*': 'Albert Einstein',
      'autonym': 'Cebuano',
      'lang': 'ceb',
      'langname': 'Cebuano'},
     {'*': 'ئەلبەرت ئاینشتاین',
      'autonym': 'کوردیی ناوەندی',
      'lang': 'ckb',
      'langname': 'Central Kurdish'},
     {'*': 'Albert Einstein',
      'autonym': 'corsu',
      'lang': 'co',
      'langname': 'Corsican'},
     {'*': 'Albert Einstein',
      'autonym': 'čeština',
      'lang': 'cs',
      'langname': 'Czech'},
     {'*': 'Эйнштейн Альберт',
      'autonym': 'Чӑвашла',
      'lang': 'cv',
      'langname': 'Chuvash'},
     {'*': 'Albert Einstein',
      'autonym': 'Cymraeg',
      'lang': 'cy',
      'langname': 'Welsh'},
     {'*': 'Albert Einstein',
      'autonym': 'dansk',
      'lang': 'da',
      'langname': 'Danish'},
     {'*': 'Albert Einstein',
      'autonym': 'Deutsch',
      'lang': 'de',
      'langname': 'German'},
     {'*': 'Albert Einstein',
      'autonym': 'Zazaki',
      'lang': 'diq',
      'langname': 'Zazaki'},
     {'*': 'Άλμπερτ Αϊνστάιν',
      'autonym': 'Ελληνικά',
      'lang': 'el',
      'langname': 'Greek'},
     {'*': 'Albert Einstein',
      'autonym': 'Esperanto',
      'lang': 'eo',
      'langname': 'Esperanto'},
     {'*': 'Albert Einstein',
      'autonym': 'español',
      'lang': 'es',
      'langname': 'Spanish'},
     {'*': 'Albert Einstein',
      'autonym': 'eesti',
      'lang': 'et',
      'langname': 'Estonian'},
     {'*': 'Albert Einstein',
      'autonym': 'euskara',
      'lang': 'eu',
      'langname': 'Basque'},
     {'*': 'Albert Einstein',
      'autonym': 'estremeñu',
      'lang': 'ext',
      'langname': 'Extremaduran'},
     {'*': 'آلبرت اینشتین',
      'autonym': 'فارسی',
      'lang': 'fa',
      'langname': 'Persian'},
     {'*': 'Albert Einstein',
      'autonym': 'suomi',
      'lang': 'fi',
      'langname': 'Finnish'},
     {'*': 'Einsteini Albert',
      'autonym': 'Võro',
      'lang': 'fiu-vro',
      'langname': 'Võro'},
     {'*': 'Albert Einstein',
      'autonym': 'føroyskt',
      'lang': 'fo',
      'langname': 'Faroese'},
     {'*': 'Albert Einstein',
      'autonym': 'français',
      'lang': 'fr',
      'langname': 'French'},
     {'*': 'Albert Einstein',
      'autonym': 'arpetan',
      'lang': 'frp',
      'langname': 'Arpitan'},
     {'*': 'Albert Einstein',
      'autonym': 'Nordfriisk',
      'lang': 'frr',
      'langname': 'Northern Frisian'},
     {'*': 'Albert Einstein',
      'autonym': 'Frysk',
      'lang': 'fy',
      'langname': 'Western Frisian'},
     {'*': 'Albert Einstein',
      'autonym': 'Gaeilge',
      'lang': 'ga',
      'langname': 'Irish'},
     {'*': '愛因斯坦', 'autonym': '贛語', 'lang': 'gan', 'langname': 'Gan Chinese'},
     {'*': 'Albert Einstein',
      'autonym': 'Gàidhlig',
      'lang': 'gd',
      'langname': 'Scottish Gaelic'},
     {'*': 'Albert Einstein',
      'autonym': 'galego',
      'lang': 'gl',
      'langname': 'Galician'},
     {'*': 'Albert Einstein',
      'autonym': "Avañe'ẽ",
      'lang': 'gn',
      'langname': 'Guarani'},
     {'*': 'Albert Einstein',
      'autonym': 'गोंयची कोंकणी / Gõychi Konknni',
      'lang': 'gom',
      'langname': 'Goan Konkani'},
     {'*': 'આલ્બર્ટ આઇન્સ્ટાઇન',
      'autonym': 'ગુજરાતી',
      'lang': 'gu',
      'langname': 'Gujarati'},
     {'*': 'Albert Einstein',
      'autonym': 'Gaelg',
      'lang': 'gv',
      'langname': 'Manx'},
     {'*': 'Albert Einstein',
      'autonym': '客家語/Hak-kâ-ngî',
      'lang': 'hak',
      'langname': 'Hakka Chinese'},
     {'*': 'Albert Einstein',
      'autonym': 'Hawaiʻi',
      'lang': 'haw',
      'langname': 'Hawaiian'},
     {'*': 'אלברט איינשטיין',
      'autonym': 'עברית',
      'lang': 'he',
      'langname': 'Hebrew'},
     {'*': 'अल्बर्ट आइंस्टीन',
      'autonym': 'हिन्दी',
      'lang': 'hi',
      'langname': 'Hindi'},
     {'*': 'Albert Einstein',
      'autonym': 'Fiji Hindi',
      'lang': 'hif',
      'langname': 'Fiji Hindi'},
     {'*': 'Albert Einstein',
      'autonym': 'hrvatski',
      'lang': 'hr',
      'langname': 'Croatian'},
     {'*': 'Albert Einstein',
      'autonym': 'Kreyòl ayisyen',
      'lang': 'ht',
      'langname': 'Haitian Creole'},
     {'*': 'Albert Einstein',
      'autonym': 'magyar',
      'lang': 'hu',
      'langname': 'Hungarian'},
     {'*': 'Ալբերտ Այնշտայն',
      'autonym': 'Հայերեն',
      'lang': 'hy',
      'langname': 'Armenian'},
     {'*': 'Albert Einstein',
      'autonym': 'interlingua',
      'lang': 'ia',
      'langname': 'Interlingua'},
     {'*': 'Albert Einstein',
      'autonym': 'Bahasa Indonesia',
      'lang': 'id',
      'langname': 'Indonesian'},
     {'*': 'Albert Einstein',
      'autonym': 'Interlingue',
      'lang': 'ie',
      'langname': 'Interlingue'},
     {'*': 'Albert Einstein',
      'autonym': 'Igbo',
      'lang': 'ig',
      'langname': 'Igbo'},
     {'*': 'Albert Einstein',
      'autonym': 'Ilokano',
      'lang': 'ilo',
      'langname': 'Iloko'},
     {'*': 'Albert Einstein',
      'autonym': 'Ido',
      'lang': 'io',
      'langname': 'Ido'},
     {'*': 'Albert Einstein',
      'autonym': 'íslenska',
      'lang': 'is',
      'langname': 'Icelandic'},
     {'*': 'Albert Einstein',
      'autonym': 'italiano',
      'lang': 'it',
      'langname': 'Italian'},
     {'*': 'アルベルト・アインシュタイン',
      'autonym': '日本語',
      'lang': 'ja',
      'langname': 'Japanese'},
     {'*': 'Alboert Ainstain',
      'autonym': 'Patois',
      'lang': 'jam',
      'langname': 'Jamaican Creole English'},
     {'*': 'albert. ainctain',
      'autonym': 'la .lojban.',
      'lang': 'jbo',
      'langname': 'Lojban'},
     {'*': 'Albert Einstein',
      'autonym': 'Basa Jawa',
      'lang': 'jv',
      'langname': 'Javanese'},
     {'*': 'ალბერტ აინშტაინი',
      'autonym': 'ქართული',
      'lang': 'ka',
      'langname': 'Georgian'},
     {'*': 'Albert Einstein',
      'autonym': 'Qaraqalpaqsha',
      'lang': 'kaa',
      'langname': 'Kara-Kalpak'},
     {'*': 'Albert Einstein',
      'autonym': 'Taqbaylit',
      'lang': 'kab',
      'langname': 'Kabyle'},
     {'*': 'Альберт Эйнштейн',
      'autonym': 'қазақша',
      'lang': 'kk',
      'langname': 'Kazakh'},
     {'*': 'អាល់បឺត អែងស្តែង',
      'autonym': 'ភាសាខ្មែរ',
      'lang': 'km',
      'langname': 'Khmer'},
     {'*': 'ಅಲ್ಬರ್ಟ್ ಐನ್\u200dಸ್ಟೈನ್',
      'autonym': 'ಕನ್ನಡ',
      'lang': 'kn',
      'langname': 'Kannada'},
     {'*': '알베르트 아인슈타인', 'autonym': '한국어', 'lang': 'ko', 'langname': 'Korean'},
     {'*': 'Albert Einstein',
      'autonym': 'Ripoarisch',
      'lang': 'ksh',
      'langname': 'Colognian'},
     {'*': 'Albert Einstein',
      'autonym': 'Kurdî',
      'lang': 'ku',
      'langname': 'Kurdish'},
     {'*': 'Albert Einstein',
      'autonym': 'kernowek',
      'lang': 'kw',
      'langname': 'Cornish'},
     {'*': 'Эйнштейн, Алберт',
      'autonym': 'Кыргызча',
      'lang': 'ky',
      'langname': 'Kyrgyz'},
     {'*': 'Albertus Einstein',
      'autonym': 'Latina',
      'lang': 'la',
      'langname': 'Latin'},
     {'*': 'Albert Einstein',
      'autonym': 'Ladino',
      'lang': 'lad',
      'langname': 'Ladino'},
     {'*': 'Albert Einstein',
      'autonym': 'Lëtzebuergesch',
      'lang': 'lb',
      'langname': 'Luxembourgish'},
     {'*': 'Альберт Эйнштейн',
      'autonym': 'лезги',
      'lang': 'lez',
      'langname': 'Lezghian'},
     {'*': 'Alubbaati Ansitayini',
      'autonym': 'Luganda',
      'lang': 'lg',
      'langname': 'Ganda'},
     {'*': 'Albert Einstein',
      'autonym': 'Limburgs',
      'lang': 'li',
      'langname': 'Limburgish'},
     {'*': 'Albert Einstein',
      'autonym': 'Ligure',
      'lang': 'lij',
      'langname': 'Ligurian'},
     {'*': 'Albert Einstein',
      'autonym': 'lumbaart',
      'lang': 'lmo',
      'langname': 'Lombard'},
     {'*': 'آلورت انیشتین',
      'autonym': 'لۊری شومالی',
      'lang': 'lrc',
      'langname': 'Northern Luri'},
     {'*': 'Albert Einstein',
      'autonym': 'lietuvių',
      'lang': 'lt',
      'langname': 'Lithuanian'},
     {'*': 'Alberts Einšteins',
      'autonym': 'latviešu',
      'lang': 'lv',
      'langname': 'Latvian'},
     {'*': 'अल्बर्ट आइनस्टाइन',
      'autonym': 'मैथिली',
      'lang': 'mai',
      'langname': 'Maithili'},
     {'*': 'Albert Einstein',
      'autonym': 'Basa Banyumasan',
      'lang': 'map-bms',
      'langname': 'Basa Banyumasan'},
     {'*': 'Albert Einstein',
      'autonym': 'Malagasy',
      'lang': 'mg',
      'langname': 'Malagasy'},
     {'*': 'Алберт Ајнштајн',
      'autonym': 'македонски',
      'lang': 'mk',
      'langname': 'Macedonian'},
     {'*': 'ആൽബർട്ട് ഐൻസ്റ്റൈൻ',
      'autonym': 'മലയാളം',
      'lang': 'ml',
      'langname': 'Malayalam'},
     {'*': 'Альберт Эйнштейн',
      'autonym': 'монгол',
      'lang': 'mn',
      'langname': 'Mongolian'},
     {'*': 'अॅल्बर्ट आइन्स्टाइन',
      'autonym': 'मराठी',
      'lang': 'mr',
      'langname': 'Marathi'},
     {'*': 'Albert Einstein',
      'autonym': 'Bahasa Melayu',
      'lang': 'ms',
      'langname': 'Malay'},
     {'*': 'Albert Einstein',
      'autonym': 'Mirandés',
      'lang': 'mwl',
      'langname': 'Mirandese'},
     {'*': 'အဲလ်ဘတ် အိုင်းစတိုင်း',
      'autonym': 'မြန်မာဘာသာ',
      'lang': 'my',
      'langname': 'Burmese'},
     {'*': 'آلبرت اینشتین',
      'autonym': 'مازِرونی',
      'lang': 'mzn',
      'langname': 'Mazanderani'},
     {'*': 'Albert Einstein',
      'autonym': 'Dorerin Naoero',
      'lang': 'na',
      'langname': 'Nauru'},
     {'*': 'Albert Einstein',
      'autonym': 'Nāhuatl',
      'lang': 'nah',
      'langname': 'Nāhuatl'},
     {'*': 'Albert Einstein',
      'autonym': 'Plattdüütsch',
      'lang': 'nds',
      'langname': 'Low German'},
     {'*': 'Albert Einstein',
      'autonym': 'Nedersaksies',
      'lang': 'nds-nl',
      'langname': 'Low Saxon'},
     {'*': 'अल्वर्ट आइन्स्टाइन',
      'autonym': 'नेपाली',
      'lang': 'ne',
      'langname': 'Nepali'},
     {'*': 'अल्बर्ट आइन्स्टाइन',
      'autonym': 'नेपाल भाषा',
      'lang': 'new',
      'langname': 'Newari'},
     {'*': 'Albert Einstein',
      'autonym': 'Nederlands',
      'lang': 'nl',
      'langname': 'Dutch'},
     {'*': 'Albert Einstein',
      'autonym': 'norsk nynorsk',
      'lang': 'nn',
      'langname': 'Norwegian Nynorsk'},
     {'*': 'Albert Einstein',
      'autonym': 'norsk bokmål',
      'lang': 'no',
      'langname': 'Norwegian'},
     {'*': 'Albert Einstein',
      'autonym': 'Novial',
      'lang': 'nov',
      'langname': 'Novial'},
     {'*': 'Hastiin Albert Einstein',
      'autonym': 'Diné bizaad',
      'lang': 'nv',
      'langname': 'Navajo'},
     {'*': 'Albert Einstein',
      'autonym': 'occitan',
      'lang': 'oc',
      'langname': 'Occitan'},
     {'*': 'Albert Einstein',
      'autonym': 'Livvinkarjala',
      'lang': 'olo',
      'langname': 'Livvi-Karelian'},
     {'*': 'Alberti Anistaayin',
      'autonym': 'Oromoo',
      'lang': 'om',
      'langname': 'Oromo'},
     {'*': 'ଆଲବର୍ଟ ଆଇନଷ୍ଟାଇନ',
      'autonym': 'ଓଡ଼ିଆ',
      'lang': 'or',
      'langname': 'Odia'},
     {'*': 'Эйнштейн, Альберт',
      'autonym': 'Ирон',
      'lang': 'os',
      'langname': 'Ossetic'},
     {'*': 'ਅਲਬਰਟ ਆਈਨਸਟਾਈਨ',
      'autonym': 'ਪੰਜਾਬੀ',
      'lang': 'pa',
      'langname': 'Punjabi'},
     {'*': 'Albert Einstein',
      'autonym': 'Kapampangan',
      'lang': 'pam',
      'langname': 'Pampanga'},
     {'*': 'Albert Einstein',
      'autonym': 'Picard',
      'lang': 'pcd',
      'langname': 'Picard'},
     {'*': 'Albert Einstein',
      'autonym': 'polski',
      'lang': 'pl',
      'langname': 'Polish'},
     {'*': 'Albert Einstein',
      'autonym': 'Piemontèis',
      'lang': 'pms',
      'langname': 'Piedmontese'},
     {'*': 'ایلبرٹ آئینسٹائن',
      'autonym': 'پنجابی',
      'lang': 'pnb',
      'langname': 'Western Punjabi'},
     {'*': 'البرټ آينسټاين',
      'autonym': 'پښتو',
      'lang': 'ps',
      'langname': 'Pashto'},
     {'*': 'Albert Einstein',
      'autonym': 'português',
      'lang': 'pt',
      'langname': 'Portuguese'},
     {'*': 'Albert Einstein',
      'autonym': 'Runa Simi',
      'lang': 'qu',
      'langname': 'Quechua'},
     {'*': 'Albert Einstein',
      'autonym': 'română',
      'lang': 'ro',
      'langname': 'Romanian'},
     {'*': 'Albert Einstein',
      'autonym': 'armãneashti',
      'lang': 'roa-rup',
      'langname': 'Aromanian'},
     {'*': 'Эйнштейн, Альберт',
      'autonym': 'русский',
      'lang': 'ru',
      'langname': 'Russian'},
     {'*': 'Алберт Айнштайн',
      'autonym': 'русиньскый',
      'lang': 'rue',
      'langname': 'Rusyn'},
     {'*': 'अल्बर्ट् ऐन्स्टैन्',
      'autonym': 'संस्कृतम्',
      'lang': 'sa',
      'langname': 'Sanskrit'},
     {'*': 'Альберт Эйнштейн',
      'autonym': 'саха тыла',
      'lang': 'sah',
      'langname': 'Sakha'},
     {'*': 'Albert Einstein',
      'autonym': 'sardu',
      'lang': 'sc',
      'langname': 'Sardinian'},
     {'*': 'Albert Einstein',
      'autonym': 'sicilianu',
      'lang': 'scn',
      'langname': 'Sicilian'},
     {'*': 'Albert Einstein',
      'autonym': 'Scots',
      'lang': 'sco',
      'langname': 'Scots'},
     {'*': 'البرٽ آئنسٽائن',
      'autonym': 'سنڌي',
      'lang': 'sd',
      'langname': 'Sindhi'},
     {'*': 'Albert Einstein',
      'autonym': 'sámegiella',
      'lang': 'se',
      'langname': 'Northern Sami'},
     {'*': 'Albert Einstein',
      'autonym': 'srpskohrvatski / српскохрватски',
      'lang': 'sh',
      'langname': 'Serbo-Croatian'},
     {'*': 'ඇල්බට්\u200d අයින්ස්ටයින්',
      'autonym': 'සිංහල',
      'lang': 'si',
      'langname': 'Sinhala'},
     {'*': 'Albert Einstein',
      'autonym': 'Simple English',
      'lang': 'simple',
      'langname': 'Simple English'},
     {'*': 'Albert Einstein',
      'autonym': 'slovenčina',
      'lang': 'sk',
      'langname': 'Slovak'},
     {'*': 'Albert Einstein',
      'autonym': 'slovenščina',
      'lang': 'sl',
      'langname': 'Slovenian'},
     {'*': 'Albert Einstein',
      'autonym': 'Soomaaliga',
      'lang': 'so',
      'langname': 'Somali'},
     {'*': 'Albert Einstein',
      'autonym': 'shqip',
      'lang': 'sq',
      'langname': 'Albanian'},
     {'*': 'Алберт Ајнштајн',
      'autonym': 'српски / srpski',
      'lang': 'sr',
      'langname': 'Serbian'},
     {'*': 'Albert Einstein',
      'autonym': 'Basa Sunda',
      'lang': 'su',
      'langname': 'Sundanese'},
     {'*': 'Albert Einstein',
      'autonym': 'svenska',
      'lang': 'sv',
      'langname': 'Swedish'},
     {'*': 'Albert Einstein',
      'autonym': 'Kiswahili',
      'lang': 'sw',
      'langname': 'Swahili'},
     {'*': 'Albert Einstein',
      'autonym': 'ślůnski',
      'lang': 'szl',
      'langname': 'Silesian'},
     {'*': 'ஆல்பர்ட் ஐன்ஸ்டைன்',
      'autonym': 'தமிழ்',
      'lang': 'ta',
      'langname': 'Tamil'},
     {'*': 'ఆల్బర్ట్ ఐన్\u200cస్టీన్',
      'autonym': 'తెలుగు',
      'lang': 'te',
      'langname': 'Telugu'},
     {'*': 'อัลเบิร์ต ไอน์สไตน์',
      'autonym': 'ไทย',
      'lang': 'th',
      'langname': 'Thai'},
     {'*': 'Albert Eýnşteýn',
      'autonym': 'Türkmençe',
      'lang': 'tk',
      'langname': 'Turkmen'},
     {'*': 'Albert Einstein',
      'autonym': 'Tagalog',
      'lang': 'tl',
      'langname': 'Tagalog'},
     {'*': 'Albert Einstein',
      'autonym': 'Tok Pisin',
      'lang': 'tpi',
      'langname': 'Tok Pisin'},
     {'*': 'Albert Einstein',
      'autonym': 'Türkçe',
      'lang': 'tr',
      'langname': 'Turkish'},
     {'*': 'Альберт Эйнштейн',
      'autonym': 'татарча/tatarça',
      'lang': 'tt',
      'langname': 'Tatar'},
     {'*': 'Эйнштейн, Альберт',
      'autonym': 'тыва дыл',
      'lang': 'tyv',
      'langname': 'Tuvinian'},
     {'*': 'ئالبېرىت ئېينىشتېين',
      'autonym': 'ئۇيغۇرچە / Uyghurche',
      'lang': 'ug',
      'langname': 'Uyghur'},
     {'*': 'Альберт Ейнштейн',
      'autonym': 'українська',
      'lang': 'uk',
      'langname': 'Ukrainian'},
     {'*': 'البرٹ آئنسٹائن',
      'autonym': 'اردو',
      'lang': 'ur',
      'langname': 'Urdu'},
     {'*': 'Albert Einstein',
      'autonym': 'oʻzbekcha/ўзбекча',
      'lang': 'uz',
      'langname': 'Uzbek'},
     {'*': 'Albert Einstein',
      'autonym': 'vèneto',
      'lang': 'vec',
      'langname': 'Venetian'},
     {'*': "Einštein Al'bert",
      'autonym': 'vepsän kel’',
      'lang': 'vep',
      'langname': 'Veps'},
     {'*': 'Albert Einstein',
      'autonym': 'Tiếng Việt',
      'lang': 'vi',
      'langname': 'Vietnamese'},
     {'*': 'Albert Einstein',
      'autonym': 'Volapük',
      'lang': 'vo',
      'langname': 'Volapük'},
     {'*': 'Albert Einstein',
      'autonym': 'walon',
      'lang': 'wa',
      'langname': 'Walloon'},
     {'*': 'Albert Einstein',
      'autonym': 'Winaray',
      'lang': 'war',
      'langname': 'Waray'},
     {'*': 'Albert Einstein',
      'autonym': 'Wolof',
      'lang': 'wo',
      'langname': 'Wolof'},
     {'*': '阿爾伯特·愛因斯坦',
      'autonym': '吴语',
      'lang': 'wuu',
      'langname': 'Wu Chinese'},
     {'*': 'ალბერტ აინშტაინი',
      'autonym': 'მარგალური',
      'lang': 'xmf',
      'langname': 'Mingrelian'},
     {'*': 'אלבערט איינשטיין',
      'autonym': 'ייִדיש',
      'lang': 'yi',
      'langname': 'Yiddish'},
     {'*': 'Albert Einstein',
      'autonym': 'Yorùbá',
      'lang': 'yo',
      'langname': 'Yoruba'},
     {'*': 'Albert Einstein',
      'autonym': 'Vahcuengh',
      'lang': 'za',
      'langname': 'Zhuang'},
     {'*': 'Albert Einstein',
      'autonym': 'Zeêuws',
      'lang': 'zea',
      'langname': 'Zeelandic'},
     {'*': '阿尔伯特·爱因斯坦', 'autonym': '中文', 'lang': 'zh', 'langname': 'Chinese'},
     {'*': 'Albert Einstein',
      'autonym': 'Bân-lâm-gú',
      'lang': 'zh-min-nan',
      'langname': 'Chinese (Min Nan)'},
     {'*': '愛因斯坦',
      'autonym': '粵語',
      'lang': 'zh-yue',
      'langname': 'Cantonese'}],
    'ns': 0,
    'pageid': 736,
    'title': 'Albert Einstein'}}}}
#make a variable for page ID so we don't have to enter specific ID by making a list
_pageID=list(json_string['query']['pages'].keys())[0]
#once we have the variable pass it through the string
_langlink_list=json_string['query']['pages'][_pageID]['langlinks']
#make a dictionary of links for each language 
_langlink_dict=dict()

for d in _langlink_list:
    _lang=d['lang']
    _title=d['*']
    _langlink_dict[_lang]=_title
#dictionary list of all languages and their abbreviations
_langAbrev_dict=dict()

for d in _langlink_list:
    _lang=d['lang']
    _langname=d['langname']
    _langAbrev_dict[_lang]=_langname
_langAbrev_dict
{'af': 'Afrikaans',
 'als': 'Alemannisch',
 'am': 'Amharic',
 'an': 'Aragonese',
 'ang': 'Old English',
 'ar': 'Arabic',
 'arz': 'Egyptian Arabic',
 'as': 'Assamese',
 'ast': 'Asturian',
 'ay': 'Aymara',
 'az': 'Azerbaijani',
 'azb': 'تۆرکجه',
 'ba': 'Bashkir',
 'bat-smg': 'Samogitian',
 'bcl': 'Bikol Central',
 'be': 'Belarusian',
 'be-x-old': 'беларуская (тарашкевіца)\u200e',
 'bg': 'Bulgarian',
 'bm': 'Bambara',
 'bn': 'Bangla',
 'bpy': 'Bishnupriya',
 'br': 'Breton',
 'bs': 'Bosnian',
 'bxr': 'буряад',
 'ca': 'Catalan',
 'cbk-zam': 'Chavacano de Zamboanga',
 'cdo': 'Min Dong Chinese',
 'ce': 'Chechen',
 'ceb': 'Cebuano',
 'ckb': 'Central Kurdish',
 'co': 'Corsican',
 'cs': 'Czech',
 'cv': 'Chuvash',
 'cy': 'Welsh',
 'da': 'Danish',
 'de': 'German',
 'diq': 'Zazaki',
 'el': 'Greek',
 'eo': 'Esperanto',
 'es': 'Spanish',
 'et': 'Estonian',
 'eu': 'Basque',
 'ext': 'Extremaduran',
 'fa': 'Persian',
 'fi': 'Finnish',
 'fiu-vro': 'Võro',
 'fo': 'Faroese',
 'fr': 'French',
 'frp': 'Arpitan',
 'frr': 'Northern Frisian',
 'fy': 'Western Frisian',
 'ga': 'Irish',
 'gan': 'Gan Chinese',
 'gd': 'Scottish Gaelic',
 'gl': 'Galician',
 'gn': 'Guarani',
 'gom': 'Goan Konkani',
 'gu': 'Gujarati',
 'gv': 'Manx',
 'hak': 'Hakka Chinese',
 'haw': 'Hawaiian',
 'he': 'Hebrew',
 'hi': 'Hindi',
 'hif': 'Fiji Hindi',
 'hr': 'Croatian',
 'ht': 'Haitian Creole',
 'hu': 'Hungarian',
 'hy': 'Armenian',
 'ia': 'Interlingua',
 'id': 'Indonesian',
 'ie': 'Interlingue',
 'ig': 'Igbo',
 'ilo': 'Iloko',
 'io': 'Ido',
 'is': 'Icelandic',
 'it': 'Italian',
 'ja': 'Japanese',
 'jam': 'Jamaican Creole English',
 'jbo': 'Lojban',
 'jv': 'Javanese',
 'ka': 'Georgian',
 'kaa': 'Kara-Kalpak',
 'kab': 'Kabyle',
 'kk': 'Kazakh',
 'km': 'Khmer',
 'kn': 'Kannada',
 'ko': 'Korean',
 'ksh': 'Colognian',
 'ku': 'Kurdish',
 'kw': 'Cornish',
 'ky': 'Kyrgyz',
 'la': 'Latin',
 'lad': 'Ladino',
 'lb': 'Luxembourgish',
 'lez': 'Lezghian',
 'lg': 'Ganda',
 'li': 'Limburgish',
 'lij': 'Ligurian',
 'lmo': 'Lombard',
 'lrc': 'Northern Luri',
 'lt': 'Lithuanian',
 'lv': 'Latvian',
 'mai': 'Maithili',
 'map-bms': 'Basa Banyumasan',
 'mg': 'Malagasy',
 'mk': 'Macedonian',
 'ml': 'Malayalam',
 'mn': 'Mongolian',
 'mr': 'Marathi',
 'ms': 'Malay',
 'mwl': 'Mirandese',
 'my': 'Burmese',
 'mzn': 'Mazanderani',
 'na': 'Nauru',
 'nah': 'Nāhuatl',
 'nds': 'Low German',
 'nds-nl': 'Low Saxon',
 'ne': 'Nepali',
 'new': 'Newari',
 'nl': 'Dutch',
 'nn': 'Norwegian Nynorsk',
 'no': 'Norwegian',
 'nov': 'Novial',
 'nv': 'Navajo',
 'oc': 'Occitan',
 'olo': 'Livvi-Karelian',
 'om': 'Oromo',
 'or': 'Odia',
 'os': 'Ossetic',
 'pa': 'Punjabi',
 'pam': 'Pampanga',
 'pcd': 'Picard',
 'pl': 'Polish',
 'pms': 'Piedmontese',
 'pnb': 'Western Punjabi',
 'ps': 'Pashto',
 'pt': 'Portuguese',
 'qu': 'Quechua',
 'ro': 'Romanian',
 'roa-rup': 'Aromanian',
 'ru': 'Russian',
 'rue': 'Rusyn',
 'sa': 'Sanskrit',
 'sah': 'Sakha',
 'sc': 'Sardinian',
 'scn': 'Sicilian',
 'sco': 'Scots',
 'sd': 'Sindhi',
 'se': 'Northern Sami',
 'sh': 'Serbo-Croatian',
 'si': 'Sinhala',
 'simple': 'Simple English',
 'sk': 'Slovak',
 'sl': 'Slovenian',
 'so': 'Somali',
 'sq': 'Albanian',
 'sr': 'Serbian',
 'su': 'Sundanese',
 'sv': 'Swedish',
 'sw': 'Swahili',
 'szl': 'Silesian',
 'ta': 'Tamil',
 'te': 'Telugu',
 'th': 'Thai',
 'tk': 'Turkmen',
 'tl': 'Tagalog',
 'tpi': 'Tok Pisin',
 'tr': 'Turkish',
 'tt': 'Tatar',
 'tyv': 'Tuvinian',
 'ug': 'Uyghur',
 'uk': 'Ukrainian',
 'ur': 'Urdu',
 'uz': 'Uzbek',
 'vec': 'Venetian',
 'vep': 'Veps',
 'vi': 'Vietnamese',
 'vo': 'Volapük',
 'wa': 'Walloon',
 'war': 'Waray',
 'wo': 'Wolof',
 'wuu': 'Wu Chinese',
 'xmf': 'Mingrelian',
 'yi': 'Yiddish',
 'yo': 'Yoruba',
 'za': 'Zhuang',
 'zea': 'Zeelandic',
 'zh': 'Chinese',
 'zh-min-nan': 'Chinese (Min Nan)',
 'zh-yue': 'Cantonese'}
#combine all the steps above into one function, every page in another language will be listed and written in that particular language
def link_getter(page_title):
    
    _S="https://en.wikipedia.org/w/api.php?action=query&format=json&prop=langlinks&titles={0}&llprop=autonym|langname&lllimit=500".format(page_title)
    
    req = requests.get(_S)

    json_string = json.loads(req.text)
    
    _pageID=list(json_string['query']['pages'].keys())[0]

    _langlink_list=json_string['query']['pages'][_pageID]['langlinks']
    
    _langlink_dict=dict()

    for d in _langlink_list:
        _lang=d['lang']
        _title=d['*']
        _langlink_dict[_lang]=_title
        
    
    return _langlink_dict
#returns list of pages in each lang it is published in 
link_getter(page_title)
{'af': 'Egiptiese staatsgreep van 2013',
 'ar': 'انقلاب 2013 في مصر',
 'arz': 'خريطة المستقبل (مصر)',
 'az': 'Misirdə hərbi çeviriliş (2013)',
 'bg': 'Държавен преврат в Египет (2013 г.)',
 'ca': "Cop d'Estat a Egipte l'any 2013",
 'ckb': 'کودەتای ٢٠١٣ی میسر',
 'de': 'Militärputsch in Ägypten 2013',
 'el': 'Αιγυπτιακό πραξικόπημα 2013',
 'es': 'Golpe de Estado en Egipto de 2013',
 'fa': 'کودتای ۲۰۱۳ مصر',
 'fi': 'Egyptin vallankaappaus 2013',
 'fr': "Coup d'État du 3 juillet 2013 en Égypte",
 'he': 'ההפיכה במצרים (2013)',
 'hi': 'मिस्र में सैन्य तख्तापलट २०१३',
 'id': 'Kudeta Mesir 2013',
 'it': 'Golpe egiziano del 2013',
 'ja': '2013年エジプトクーデター',
 'ko': '2013년 이집트 쿠데타',
 'nl': 'Protesten en staatsgreep in Egypte in 2013',
 'pl': 'Zamach stanu w Egipcie (2013)',
 'pt': 'Golpe de Estado no Egito em 2013',
 'ro': 'Lovitura de stat din Egipt din 2013',
 'ru': 'Военный переворот в Египте (2013)',
 'sr': 'Државни удар у Египту (2013)',
 'tg': 'Кудатои 2013 Миср',
 'tr': '2013 Mısır askerî darbesi',
 'uk': 'Військовий переворот в Єгипті 2013',
 'ur': '2013ء مصری فوجی تاخت',
 'vi': 'Đảo chính Ai Cập 2013',
 'zh': '2013年埃及政变'}

Retrieve the content of the page via API

Write a function that takes an article title and returns the list of links in the body of the article. Note that the reason we don't use the "pagelinks" table in MySQL or the "links" parameter in the API is that this includes links within templates. Articles with templates link to each other forming over-dense clusters in the resulting networks. We only want the links appearing in the body of the text.

We pass a request to the API, which returns a JSON-formatted string containing the HTML of the page. We use BeautifulSoup to parse through the HTML tree and extract the non-template links and return them as a list.

def get_page_outlinks(page_title,lang='en',redirects=1):
    # Replace spaces with underscores
    page_title = page_title.replace(' ','_')
    
    bad_titles = ['Special:','Wikipedia:','Help:','Template:','Category:','International Standard','Portal:','s:','File:']
    
    # Get the response from the API for a query
    # After passing a page title, the API returns the HTML markup of the current article version within a JSON payload
    req = requests.get('https://{2}.wikipedia.org/w/api.php?action=parse&format=json&page={0}&redirects={1}&prop=text&disableeditsection=1&disabletoc=1'.format(page_title,redirects,lang))
    
    # Read the response into JSON to parse and extract the HTML
    json_string = json.loads(req.text)
    
    # Initialize an empty list to store the links
    outlinks_list = [] 
    
    if 'parse' in json_string.keys():
        page_html = json_string['parse']['text']['*']

        # Parse the HTML into Beautiful Soup
        soup = BeautifulSoup(page_html,'lxml')

        # Delete tags associated with templates
        for tag in soup.find_all('tr'):
            tag.replace_with('')

        # For each paragraph tag, extract the titles within the links
        for para in soup.find_all('p'):
            for link in para.find_all('a'):
                if link.has_attr('title'):
                    title = link['title']
                    # Ignore links that aren't interesting
                    if all(bad not in title for bad in bad_titles):
                        outlinks_list.append(title)

        # For each unordered list, extract the titles within the child links
        for unordered_list in soup.find_all('ul'):
            for item in unordered_list.find_all('li'):
                for link in item.find_all('a'):
                    if link.has_attr('title'):
                        title = link['title']
                        # Ignore links that aren't interesting
                        if all(bad not in title for bad in bad_titles):
                            outlinks_list.append(title)

    return outlinks_list
#test of outlinks grabbed for german page specifically named here, naming the page and the language
german_outlinks=get_page_outlinks('Militärputsch in Ägypten 2013',lang='de')
german_outlinks[:10]
['Putsch',
 'Streitkräfte Ägyptens',
 'Oberster Rat der Streitkräfte',
 'Abd al-Fattah as-Sisi',
 'Ägypten',
 'Mohammed Mursi',
 'Ultimatum',
 'Islamismus',
 'Muslimbrüder',
 'Staatskrise in Ägypten 2013']
#this is just a repeat doesnt necessarily need to be here 
link_getter(page_title)
{'af': 'Egiptiese staatsgreep van 2013',
 'ar': 'انقلاب 2013 في مصر',
 'arz': 'خريطة المستقبل (مصر)',
 'az': 'Misirdə hərbi çeviriliş (2013)',
 'bg': 'Държавен преврат в Египет (2013 г.)',
 'ca': "Cop d'Estat a Egipte l'any 2013",
 'ckb': 'کودەتای ٢٠١٣ی میسر',
 'de': 'Militärputsch in Ägypten 2013',
 'el': 'Αιγυπτιακό πραξικόπημα 2013',
 'es': 'Golpe de Estado en Egipto de 2013',
 'fa': 'کودتای ۲۰۱۳ مصر',
 'fi': 'Egyptin vallankaappaus 2013',
 'fr': "Coup d'État du 3 juillet 2013 en Égypte",
 'he': 'ההפיכה במצרים (2013)',
 'hi': 'मिस्र में सैन्य तख्तापलट २०१३',
 'id': 'Kudeta Mesir 2013',
 'it': 'Golpe egiziano del 2013',
 'ja': '2013年エジプトクーデター',
 'ko': '2013년 이집트 쿠데타',
 'nl': 'Protesten en staatsgreep in Egypte in 2013',
 'pl': 'Zamach stanu w Egipcie (2013)',
 'pt': 'Golpe de Estado no Egito em 2013',
 'ro': 'Lovitura de stat din Egipt din 2013',
 'ru': 'Военный переворот в Египте (2013)',
 'sr': 'Државни удар у Египту (2013)',
 'tg': 'Кудатои 2013 Миср',
 'tr': '2013 Mısır askerî darbesi',
 'uk': 'Військовий переворот в Єгипті 2013',
 'ur': '2013ء مصری فوجی تاخت',
 'vi': 'Đảo chính Ai Cập 2013',
 'zh': '2013年埃及政变'}
#pull all out links for each specific language page 
_langlink_AllList_dict=dict()

for lang,title in link_getter(page_title).items():
    LangLinksAll=get_page_outlinks(page_title=title,lang=lang)
   
    _langlink_AllList_dict[lang]=LangLinksAll
    
    

Run an example article, shows the first all outlinks for all articles in each language .

_langlink_AllList_dict
{'af': ['Egipte',
  'Arabiese Lente',
  'Abdul Fatah al-Sisi (bladsy bestaan nie)',
  'Hamdin Sabahi (bladsy bestaan nie)'],
 'ar': ['3 يوليو',
  '2013',
  'الجيش المصري',
  'عبد الفتاح السيسي',
  'الانتخابات الرئاسية المصرية 2012',
  'محمد مرسي',
  'دستور مصر 2012',
  'المحكمة الدستورية العليا المصرية',
  'عدلي منصور',
  'محمد مرسي',
  'الإخوان المسلمون في مصر',
  'مظاهرات 30 يونيو 2013 في مصر',
  'محمد مرسي',
  'المجلس الأعلى للقوات المسلحة',
  'محمد حسني مبارك',
  'ثورة 25 يناير',
  'حركة تمرد',
  'محمد البرادعي',
  'جبهة الإنقاذ الوطني (مصر)',
  'أحمد الطيب',
  'تواضروس الثاني',
  'محمد مرسي',
  'مدينة نصر',
  'القاهرة',
  '1 يوليو',
  'الإخوان المسلمين',
  'المقطم (حي)',
  '1 يوليو',
  'القوات المسلحة المصرية',
  'عبد الفتاح السيسي',
  'حزب النور',
  'سامي عنان',
  'وكالة أنباء الشرق الأوسط',
  'محمد كامل عمرو',
  'وزارة الداخلية المصرية',
  '2 يوليو',
  'طلعت عبد الله',
  'محمد مرسي',
  'عبد المجيد محمود',
  'كفر الشيخ',
  '2 يوليو',
  'الإثنين',
  'يوتيوب',
  'عبد الفتاح السيسي',
  'المحكمة الدستورية العليا',
  'أحمد الطيب',
  'تواضروس الثاني',
  'محمد البرادعي',
  'قناة الناس',
  'قناة الرحمة الفضائية',
  'قناة الحافظ',
  'مصر 25',
  'محمد جمال هلال (الصفحة غير موجودة)',
  'الجزيرة مباشر مصر',
  'قناة الجزيرة',
  'الجزيرة الإنجليزية',
  'الجزيرة مباشر مصر',
  'قناة الجزيرة',
  'القاهرة',
  'الجزيرة مباشر مصر',
  'ميدان التحرير',
  'قناة الجزيرة',
  'الجزيرة مباشر مصر',
  'نايل سات',
  'الإخوان المسلمين',
  'محمد مرسي',
  'سعد الكتاتني',
  'خيرت الشاطر',
  'رشاد البيومي',
  'مهدي عاكف',
  'حلمي الجزار',
  'حازم صلاح أبو إسماعيل',
  'محمد بديع',
  'مصر',
  'محافظة الشرقية',
  'محمد مرسي',
  'الخميس',
  '4 يوليو',
  'شبه جزيرة سيناء',
  'معبر رفح',
  'قطاع غزة',
  'قوات الأمن المركزي',
  'مطار العريش (الصفحة غير موجودة)',
  '4 يوليو',
  'عدلي منصور',
  'المحكمة الدستورية العليا',
  'علي عوض محمد صالح (الصفحة غير موجودة)',
  'مصطفى حجازي',
  'عبد المجيد محمود',
  'النيابة العامة (مصر)',
  'طلعت عبد الله',
  'مجلس القضاء الأعلى',
  '8 يوليو',
  'محمد مرسي',
  'الجيش المصري',
  'صلاة الفجر',
  'انقلاب 3 يوليو 2013 في مصر',
  'مظاهرات 30 يونيو 2013 في مصر',
  'ما بعد انقلاب 2013 في مصر',
  'أحداث دار الحرس الجمهوري 2013',
  'محمد مرسي',
  'فيسبوك',
  'وزارة الداخلية المصرية',
  'حزب الحرية والعدالة',
  'حزب الوسط المصري',
  'التحالف الوطني لدعم الشرعية',
  'اعتصام رابعة العدوية',
  'شارة رابعة',
  'الأمم المتحدة',
  'بان كي مون',
  'الاتحاد الأوروبي',
  'كاترين أشتون',
  'الاتحاد الأفريقي',
  'الولايات المتحدة',
  'باراك أوباما',
  'المملكة المتحدة',
  'ويليام هيغ',
  'ألمانيا',
  'الصين',
  'فرنسا',
  'تركيا',
  'أحمد داود أوغلو',
  'السعودية',
  'عبد الله بن عبد العزيز آل سعود',
  'الإمارات العربية المتحدة',
  'السودان',
  'سوريا',
  'بشار الأسد',
  'تونس',
  'المنصف المرزوقي',
  'الأردن',
  'اليمن',
  'عبد ربه منصور هادي',
  'بوابة:مصر',
  'بوابة:مصر',
  'بوابة:ثورات الربيع العربي',
  'بوابة:ثورات الربيع العربي',
  'بوابة:القوات المسلحة المصرية',
  'بوابة:القوات المسلحة المصرية',
  'بوابة:الحرب',
  'بوابة:الحرب',
  'بوابة:السياسة',
  'بوابة:السياسة',
  'بوابة:القانون',
  'بوابة:القانون',
  'بوابة:عقد 2010',
  'بوابة:عقد 2010'],
 'arz': ['الجيش المصرى',
  'محمد مرسى',
  'محمد البرادعى',
  'الإمام الأكبر',
  'احمد الطيب',
  'تواضروس التانى بابا اسكندريه',
  'حركة تمرد',
  'حزب النور',
  'مدينة نصر',
  'محمد حسنى مبارك',
  'دستور مصر 2012',
  'وول ستريت جورنال (الصفحه مالهاش وجود)',
  'محمد البرادعى',
  'عمرو موسى',
  'حمدين صباحى',
  'محمد حسين طنطاوى',
  'دستور مصر',
  'المعادى',
  'اسكندريه',
  'محافظة الدقهليه',
  'محافظة الغربيه',
  'أسوان',
  'حركة تمرد',
  'عبد الفتاح السيسى',
  'عدلى منصور',
  '3 يوليه',
  '2013',
  'الجيش المصرى',
  'محمد مرسى',
  'الاتحاد الافريقى',
  'انقلاب',
  'الإخوان المسلمين (الصفحه مالهاش وجود)'],
 'az': [],
 'bg': ['3 юли',
  '2013',
  'Абдел Фатах ел-Сиси (страницата не съществува)',
  'Президент на Египет',
  'Мохамед Морси',
  'Власт',
  'Египетска конституция (страницата не съществува)',
  'Ултиматум',
  'Протест',
  'Мюсюлманско братство',
  'Адли Мансур (страницата не съществува)',
  'Демонстрация',
  'Велик шейх на ал-Ажар (страницата не съществува)',
  'Ахмед ел-Тайеб (страницата не съществува)',
  'Копти',
  'Мохамед ЕлБарадей (страницата не съществува)',
  'Араби',
  'Катар',
  'Тунис',
  'САЩ',
  'Африкански съюз',
  'Регулация',
  'Запад',
  '14 август',
  '2013'],
 'ca': ['Mohamed Mursi',
  'Germans Musulmans',
  'Egipte',
  'Mariscal de camp',
  'Govern',
  'Abdelfatah Al-Sisi',
  'Germans Musulmans',
  'Mohamed al-Baradei',
  "Teodor II d'Alexandria",
  'Xeic',
  'Mesquita',
  'Exèrcit',
  'Plaça Tahrir',
  'El Caire',
  'Mohamed Mursi',
  'Constitució',
  'Adly Mansur',
  'Egipte',
  'Primer ministre',
  'Ultimàtum',
  "Cop d'Estat",
  'Exèrcit',
  'Exèrcit',
  'Policia',
  'Germans Musulmans',
  'Drets humans',
  'Autocràcia'],
 'ckb': ['ئیخوان موسلمین',
  'محەممەد مورسی',
  'عەدلی مەنسوور',
  'عەبدولفەتاح سیسی',
  'محەممەد مورسی',
  'ژن',
  'دەستدرێژیی سێکسی',
  'گۆڕەپانی تەحریر',
  'ئاڵمانیا',
  'ئیماڕات (پەڕە بوونی نییە)',
  'سوریا',
  'سعودیا (پەڕە بوونی نییە)'],
 'de': ['Putsch',
  'Streitkräfte Ägyptens',
  'Oberster Rat der Streitkräfte',
  'Abd al-Fattah as-Sisi',
  'Ägypten',
  'Mohammed Mursi',
  'Ultimatum',
  'Islamismus',
  'Muslimbrüder',
  'Staatskrise in Ägypten 2013',
  'Vereinigte Staaten von Amerika',
  'Europäische Union',
  'Terrorismus',
  'Sinai-Halbinsel',
  'Gotteskrieger',
  'Menschenrechtsorganisation',
  'Husni Mubarak',
  'Putsch',
  'Koptische Kirche',
  'Patriarch',
  'Tawadros II.',
  'Imam',
  'Al-Azhar-Universität',
  'Ahmed Tayeb',
  'Tamarod',
  'Linksliberalismus',
  'Nationale Heilsfront',
  'Mohammed el-Baradei',
  'Salafisten',
  'Partei des Lichts',
  'Hasim al-Beblawi',
  'Staatskrise in Ägypten 2013',
  'Christentum',
  'Bischof',
  'Tawadros II.',
  'Sanktion',
  'Römisch-katholische Kirche',
  'Deutsche Bischofskonferenz',
  'Muslimbrüder',
  'Tiefer Staat',
  'Husni Mubarak',
  'Revolution in Ägypten 2011',
  'Restauration (Geschichte)',
  'Konterrevolution',
  'Parlament',
  'Verfassunggebende Versammlung',
  'Gremium',
  'Husni Mubarak',
  'Nachrichtendienst',
  'Streitkräfte Ägyptens',
  'Demonstration',
  'Protest',
  'Interessengruppe',
  'Unterschriftenaktion',
  'Tamarod',
  'Naguib Sawiris',
  'Infrastruktur',
  'Partei der Freien Ägypter',
  'Verfassungsgerichtsbarkeit',
  'Tahani al-Gebali',
  'Elektrizitätsversorgung',
  'Kraftstoff',
  'Erdgas',
  'Menschenrechte',
  'Folter',
  'Pressefreiheit',
  'Lebensmittelteuerung (Seite nicht vorhanden)',
  'Arbeitslosigkeit',
  'Tankstelle',
  'Stromausfall',
  'Boykott',
  'Kriminalität',
  'Nachrichtendienst',
  'Tawadros II.',
  'Ahmad Mohammad al-Tayyeb',
  'Mohammed el-Baradei',
  'Islam',
  'Al-Azhar-Universität',
  'Linksliberalismus',
  'Mohammed el-Baradei',
  'Salafismus',
  'Partei des Lichts',
  'Elite',
  'Übergangsregierung',
  'Technokratie',
  'Großunternehmen',
  'Gouvernement',
  'Gouverneur',
  'Abd al-Fattah as-Sisi',
  'Mohammed Hussein Tantawi',
  'Gremium',
  'Arbeitslosigkeit',
  'Inflation',
  'Revolution in Ägypten 2011',
  'Verfassung der Republik Ägypten',
  'Gouvernements in Ägypten',
  'Adel al-Chajat',
  'Gamaa Islamija',
  'Al-Azhar-Moschee',
  'Tamarod',
  'Mohammed Mursi',
  'Tahrir-Platz',
  'Al-Wasat-Partei',
  'Streitkräfte Ägyptens',
  'Barack Obama',
  'Mohamed Kamel Amr',
  'Middle East News Agency (Seite nicht vorhanden)',
  'Abd al-Fattah as-Sisi',
  'Hescham Kandil',
  'Abdel Meguid Mahmud',
  'Koalition (Politik)',
  'Universität Kairo',
  'Al-Dschamāʿa al-islāmiyya',
  'Assem Abdel-Maged (Seite nicht vorhanden)',
  'Anne W. Patterson',
  'Mitteleuropäische Sommerzeit',
  'Heliopolis',
  'Greenwich Mean Time',
  'Übergangsregierung',
  'Abd al-Fattah as-Sisi',
  'Vorgezogene Neuwahl',
  'Mahmoud Badr (Seite nicht vorhanden)',
  'Entführung',
  'Wiki Thawra (Seite nicht vorhanden)',
  'Washington Post',
  'Revolution',
  'Stiftung Wissenschaft und Politik',
  'Volker Perthes',
  'Die Zeit',
  'Kurier (Tageszeitung)',
  'Der Spiegel',
  'Putsch',
  'Politikwissenschaft',
  'NDR Info',
  'Putsch',
  'John Kerry',
  'Martin E. Dempsey',
  'Sedki Sobhi (Seite nicht vorhanden)',
  'Gunter Mulack',
  'Türkei',
  'Recep Tayyip Erdoğan',
  'Tunesien',
  'Ennahda',
  'The Daily Beast',
  'Philip J. Crowley',
  'Außenminister der Vereinigten Staaten',
  'Zentrum für Forschung zur Arabischen Welt (Seite nicht vorhanden)',
  'Deutsche Gesellschaft für Auswärtige Politik',
  'Europäische Union',
  'Krieg gegen den Terror',
  'Israelisch-ägyptischer Friedensvertrag',
  'Menschenrechte',
  'Dirk Emmerich (Seite nicht vorhanden)',
  'N-tv',
  'Tiefer Staat',
  'Judikative',
  'Exekutive',
  'Administrative',
  'Revolution in Ägypten 2011',
  'Wirtschaft',
  'Militär',
  'Staat im Staate',
  'Konterrevolution',
  'Elite',
  'Militärparade',
  'Akademischer Grad',
  'Militärakademie',
  'Vierte Gewalt',
  'The Guardian',
  'The Washington Post',
  'Al-Arabiya',
  'Al Jazeera',
  'Deutsche Welle',
  'BBC Arabic (Seite nicht vorhanden)',
  'Analphabetismus',
  'Kinderschänder',
  'Michael Thumann',
  'Bürgerrecht',
  'Arabic Network for Human Rights Information (Seite nicht vorhanden)',
  'Muhammad Badi’e',
  'Rābiʿa-al-ʿAdawiyya-Moschee',
  'Chairat al-Schater',
  'Saad al-Katatni',
  'Freiheits- und Gerechtigkeitspartei',
  'Rashad Bajumi (Seite nicht vorhanden)',
  'Human Rights Watch',
  'Adli Mansur',
  'Marsa Matruh',
  'Kafr asch-Schaich',
  'Alexandria',
  'Al-Minya',
  'Alexandria',
  'Luxor',
  'Damanhur',
  'Konterrevolution',
  'Flughafen al-Arisch',
  'Gouvernement as-Suwais',
  'Gouvernement Dschanub Sina',
  'Hosni Mubarak',
  'Kopten',
  'Kreuzzug',
  'Scharia',
  'Mohammed el-Baradei',
  'Partei des Lichts',
  'Ägyptische Sozialdemokratische Partei',
  'Siad Bahaa El-Din (Seite nicht vorhanden)',
  'Koptische Kirche',
  'Al-Arisch',
  'Verfassung der Republik Ägypten',
  'Voice of America',
  'Afrikanische Union',
  'Republikanische Partei',
  'John McCain',
  'Partei des Lichts',
  'Hasim al-Beblawi',
  'Weltbank',
  'Recep Tayyip Erdoğan',
  'Abdullah Gül',
  'Blutbad in Kairo und Gizeh vom 14. August 2013',
  'Cairo Institute for Human Rights Studies (Seite nicht vorhanden)',
  'Kosovo',
  'Libyen',
  'Syrien',
  'Libanon',
  'Ukraine',
  'Europäische Union',
  'Militärputsch in Ägypten 1952',
  'Gamal Abdel Nasser',
  'Tawadros II.',
  'Ahmad Mohammad al-Tayyeb',
  'Mohammed el-Baradei',
  'Verfassung der Republik Ägypten',
  'Oberstes Verfassungsgericht Ägyptens',
  'Adli Mansur',
  'Übergangsregierung',
  'Technokratie',
  'British Broadcasting Corporation',
  'Nationale Heilsfront',
  'Freiheits- und Gerechtigkeitspartei',
  'Joachim Schroedel',
  'Deutsche Bischofskonferenz',
  'The European',
  'Afrikanische Union',
  'Afrikanische Union',
  'Afrikanische Union',
  'Addis Abeba',
  'Nkosazana Dlamini-Zuma',
  'Revolution in Ägypten 2011',
  'Hosni Mubarak',
  'Mohammed Edrees (Seite nicht vorhanden)',
  'Dekolonisation Afrikas',
  'Deutschland',
  'Deutschland',
  'Guido Westerwelle',
  'Dänemark',
  'Dänemark',
  'Iran',
  'Iran',
  'Jordanien',
  'Jordanien',
  'Katar',
  'Katar',
  'Kuwait',
  'Kuwait',
  'Russland',
  'Russland',
  'Alexej Puchow (Seite nicht vorhanden)',
  'Saudi-Arabien',
  'Saudi-Arabien',
  'Abdullah ibn Abd al-Aziz',
  'Somalia',
  'Somalia',
  'Al-Shabaab (Somalia)',
  'Twitter',
  'Rosarote Brille',
  'Syrien',
  'Syrien',
  'Baschar al-Assad',
  'Türkei',
  'Türkei',
  'Ahmet Davutoğlu',
  'Recep Tayyip Erdoğan',
  'Israel',
  'Tunesien',
  'Tunesien',
  'Moncef Marzouki',
  'Kongress für die Republik (Tunesien)',
  'Vereinigte Arabische Emirate',
  'Vereinigte Arabische Emirate',
  'Chalifa bin Zayid Al Nahyan',
  'Vereinigtes Königreich',
  'Vereinigtes Königreich',
  'William Hague',
  'Vereinigte Staaten',
  'Vereinigte Staaten',
  'Vereinigte Staaten',
  'Tansania',
  'Barack Obama',
  'Tunesien',
  'Algerien',
  'L’Orient-Le Jour',
  'Libanon',
  'The Daily Star (Libanon)',
  'Baschar al-Assad',
  'Syrien',
  'Iran',
  'Bahrain',
  'Gulf News',
  'Vereinigte Arabische Emirate',
  'Israel',
  'Israel HaYom',
  'Jedi’ot Acharonot',
  'Haaretz',
  'Frankreich',
  'Paris',
  'Le Figaro',
  'Ouest-France',
  'The New York Times',
  'Handelsblatt',
  'Die Welt',
  'Süddeutsche Zeitung',
  'Frankfurter Allgemeine Zeitung',
  'Jen Psaki',
  'George Orwell',
  'Neusprech',
  'Federal Reserve Bank of New York',
  'Rüstungsindustrie',
  'General Dynamics F-16',
  'Mehrzweckkampfflugzeug',
  'Hughes AH-64',
  'Kampfhubschrauber',
  'M1 Abrams',
  'Kampfpanzer',
  'Fregatte',
  'Krieg in Afghanistan',
  'Krieg gegen den Terror',
  'Naher Osten',
  'Ostafrika',
  'Freiheiten der Luft',
  'Luftraum',
  'Sueskanal',
  'Ölvorkommen',
  'Naher Osten',
  'Brookings Institution',
  'Demokratiemessung',
  'Demokratiemessung',
  'Husni Mubarak',
  'Anwar as-Sadat',
  'Blutbad in Kairo und Gizeh 2013',
  'Staatskrise in Ägypten 2013/2014 (Kabinett Beblawi)',
  'Chile',
  'Argentinien',
  'Algerien',
  'Martin Gehlen',
  'James Franklin Jeffrey',
  'American Council on Germany',
  'Council on Foreign Relations',
  'George W. Bush'],
 'el': ['Αμπντούλ Φατάχ αλ Σίσι',
  'Μοχάμεντ Μόρσι',
  'Τελεσίγραφο',
  'Μοχάμεντ Μόρσι',
  'Ρεπουμπλικανική Φρουρά (Αίγυπτος) (δεν έχει γραφτεί ακόμα)',
  'Πρόεδρος της Αιγύπτου',
  'Ανώτατο Συμβούλιο Ενόπλων Δυνάμεων (δεν έχει γραφτεί ακόμα)',
  'Συνταγματικό Δικαστήριο της Αιγύπτου (δεν έχει γραφτεί ακόμα)',
  'Αντλί Μανσούρ',
  'Αφρικανική Ένωση'],
 'es': ['3 de julio',
  '2013',
  'Consejo Supremo de las Fuerzas Armadas',
  'Abdul Fatah al-Sisi',
  'Fuerzas Armadas de Egipto',
  'Presidente de Egipto',
  'Mohamed Morsi',
  'Jefe de Estado',
  'Egipto',
  '29 de junio',
  'Plaza de la Liberación',
  'El Cairo',
  'Egipto',
  'Tamarod',
  'Referéndum revocatorio',
  'Adli Mansur',
  'Partido Libertad y Justicia',
  'Revolución egipcia de 2011',
  'Hosni Mubarak',
  'Elecciones presidenciales de Egipto de 2012',
  'Partido Libertad y Justicia',
  'Hermanos Musulmanes',
  'Islamista',
  'Ahmed Shafik',
  'Islam',
  'Protestas en Egipto en noviembre y diciembre de 2012',
  '23 de noviembre',
  '2013',
  'Tamarod',
  'Lengua árabe',
  'Recogida de firmas (aún no redactado)',
  'Kifaya',
  'Hosni Mubarak',
  'Tamarod',
  'Alejandría',
  'Puerto Saíd',
  'Suez',
  'Ciudad Nasr (aún no redactado)',
  'Hermanos Musulmanes',
  'Mokattam',
  'Fuerzas Armadas de Egipto',
  'Abdul Fatah al-Sisi',
  'Frente de Salvación Nacional (Egipto)',
  'Mohamed Kamel Amr',
  '3 de julio',
  'Hermandad musulmana',
  'Frente de Salvación Nacional (Egipto)',
  'Mohamed el-Baradei',
  'Tamarod',
  'Partido al-Nour',
  'Gran Imán de al-Azhar',
  'Ahmed el-Tayeb',
  'Iglesia copta',
  'Teodoro II (papa copto)',
  'Egipto',
  'Plaza Tahrir',
  'El Cairo',
  'Ministerio de Defensa',
  'ERTU',
  'Fuerzas Armadas de Egipto',
  'Fuerzas Armadas de Egipto',
  'Mohamed el-Baradei',
  'Adli Mansur',
  'Adli Mansur',
  'Hazem el Beblaui',
  '16 de julio',
  'Islamista',
  'Mohamed el-Baradei',
  'Mohamed Badía',
  'Mahmoud Ezzat',
  'Hamás',
  '23 de septiembre',
  'Copta',
  'Guerra civil',
  'Frente de Salvación Nacional (Egipto)',
  'Adli Mansour',
  '8 de julio',
  'Hermanos Musulmanes',
  'Intifada',
  'Partido al-Nour',
  '14 de agosto',
  'Estados Unidos',
  'Barack Obama',
  'Tanzania',
  'Rusia',
  'Rusia',
  'Vladímir Putin',
  'Egipto',
  'Guerra Civil Siria',
  'Siria',
  'Libia',
  'Partido Justicia y Construcción (aún no redactado)',
  'Trípoli',
  'Bengasi',
  'Mohamed Badía',
  'Protestas en Egipto de 2012'],
 'fa': ['محمد مرسی',
  'انقلاب ۲۰۱۱ مصر',
  'محمد البرادعی',
  'میدان تحریر',
  'ارتش مصر',
  'عبدالفتاح السیسی',
  'عدلی منصور',
  'حازم الببلاوی',
  'محمد البرادعی',
  'اخوان\u200cالمسلمین',
  'حبس ابد',
  'کلیسا',
  'سوئز',
  'رده:اعتراضات در جهان عرب (۲۰۱۰–۲۰۱۱)',
  'اخوان\u200cالمسلمین',
  'قاهره',
  'میدان التحریر',
  'زره پوش',
  'اسکندریه',
  'سوئز (شهر)',
  'عریش',
  'عبدالله بن عبدالعزیز',
  'عدلی منصور',
  'سعود الفیصل',
  'بشار اسد',
  'جهان عرب',
  'پرچم ایالات متحده آمریکا',
  'باراک اوباما',
  'جان مک\u200cکین',
  'لیندزی گراهام (صفحه وجود ندارد)',
  'مجلس سنای آمریکا',
  'محمد البرادعی',
  'حازم ببلاوی',
  'عبدالفتاح السیسی',
  'نوری مالکی',
  'عدلی منصور',
  'پرچم ایران',
  'کاترین اشتون'],
 'fi': ['Mohammed Mursi',
  'Muslimiveljeskunta',
  'Arabikevät',
  'Egyptin vallankumous 2011',
  'Hosni Mubarak',
  'Mohammed Mursi',
  'Muslimiveljeskunta',
  'Aleksandria',
  'Egyptin armeija (sivua ei ole)',
  'Arabikevät',
  'Abdel Fattah al-Sisi',
  'Adli Mansur',
  'Ansar al-Shariah (sivua ei ole)',
  'Al-Nour',
  'Mohamed ElBaradei',
  'Salafistit (sivua ei ole)',
  'Al-Nour',
  'Hazem Al-Beblawi (sivua ei ole)'],
 'fr': ['Abdelfatah Khalil al-Sisi',
  'Chuck Hagel',
  'Mohamed Morsi',
  'Consultez la documentation du modèle',
  'Forces armées égyptiennes',
  'Mohamed Morsi',
  'Élection présidentielle égyptienne de 2012',
  'Révolution égyptienne de 2011',
  'Mohamed Morsi',
  'Hosni Moubarak',
  'Révolution Égyptienne de 2011',
  'Égypte',
  'Novembre 2011',
  '2011',
  'Élections législatives égyptiennes de 2011-2012',
  '17 juin',
  'Juin 2012',
  '2012',
  'Mohamed Morsi',
  'Élection présidentielle égyptienne de 2012',
  'Ahmed Chafik',
  'Mohamed Morsi',
  'Mouvement protestataire de juin-juillet 2013 en Égypte',
  'Tamarod (page inexistante)',
  'Frères musulmans',
  'Abdelfatah Khalil al-Sisi',
  'Université du Michigan',
  'Constitution égyptienne',
  'Le Caire',
  'Alexandrie',
  'Daqahliyah (page inexistante)',
  'Gouvernorat de Gharbeya',
  'Assouan',
  'Nasr City (page inexistante)',
  'en:Nasr City',
  'Al-Masri Al-Youm',
  'Haute Cour constitutionnelle (Égypte)',
  'Maher el-Beheiry (page inexistante)',
  'Parti Nour',
  'Mouvement de la Jeunesse du 6-Avril',
  'Jihad islamique égyptien',
  'Abdel Moneim Abul Fotouh',
  'Mohamed El Baradei',
  'Parti national démocratique (Égypte)',
  'Frères musulmans',
  '30 juin',
  'Place Tahrir',
  'Caire',
  "Palais d'el-Orouba",
  'Alexandrie',
  'Port-Saïd',
  'Suez (ville)',
  '1er juillet',
  'Frères musulmans',
  'Mohamed Morsi',
  '3 juillet',
  'Adly Mansour',
  'Le Caire',
  'Abdelfatah Khalil al-Sisi',
  'Salafisme',
  'Mohamed El Baradei',
  "Théodore II d'Alexandrie (pape copte)",
  'Mohamed Morsi',
  'Haute Cour constitutionnelle (Égypte)',
  'Adli Mansour',
  'Tony Blair',
  'Palestine',
  'Mohamed Morsi',
  'Sinaï',
  'Mohamed Morsi',
  'Al-Nour',
  'Al-Nour',
  'Hazem el-Beblawi',
  'Mohammed Badie',
  'Allemagne',
  'États-Unis',
  'Bande de Gaza',
  'Blocus de la bande de Gaza',
  'Parti de la Liberté et de la Justice',
  'Mohamed Morsi',
  'Hamas',
  'Frères musulmans',
  'Amnesty International',
  'Sit-in',
  'Parti Liberté et Justice',
  'Frères musulmans',
  'Human Rights Watch',
  'Coptes',
  'Collège de France',
  'Amnesty International',
  'Human Rights Watch',
  'François Hollande',
  'Laurent Fabius',
  'Qatar',
  "L'Elysée",
  'Catherine Ashton',
  'Coptes',
  'Frères musulmans',
  'General Dynamics F-16 Fighting Falcon',
  'n:Dossier:Crise politique de juin-juillet 2013 en Égypte',
  'Événements de janvier 1992 en Algérie',
  'Alain Gresh',
  'Portail de la politique',
  'Portail:Politique',
  'Portail du droit',
  'Portail:Droit',
  'Portail de l’histoire militaire',
  'Portail:Histoire militaire',
  'Portail de l’Égypte',
  'Portail:Égypte',
  'Portail des années 2010',
  'Portail:Années 2010'],
 'he': ['הפיכה',
  'צבא מצרים',
  'נשיא מצרים',
  'מוחמד מורסי',
  'עדלי מנסור',
  'מחאה',
  'הפגנה',
  'האחים המוסלמים',
  'עבד אל-פתאח א-סיסי',
  'מצרים',
  '22 בנובמבר',
  '2012',
  '29 ביוני',
  '2013',
  'כיכר תחריר',
  'קהיר',
  '1 ביולי',
  'צבא מצרים',
  'עבד אל-פתאח א-סיסי',
  'עדלי מנסור',
  'עדלי מנסור',
  'בית המשפט החוקתי העליון של מצרים (הדף אינו קיים)',
  'האחים המוסלמים',
  '5 ביולי',
  '7 ביולי',
  '9 ביולי',
  '2013',
  'חאזם אל-בבלאווי',
  '2014',
  'חמאס',
  'ארגון טרור',
  'פלסטינים',
  'האחים המוסלמים',
  'מנהרות ההברחה של רצועת עזה',
  'חצי האי סיני',
  'טרור',
  'גרילה',
  'צבא מצרים',
  'טבח 14 באוגוסט במצרים',
  'מסגד ראבעה אל-עדוויה',
  'קהיר',
  'מוחמד אל-בראדעי',
  'מוחמד בדיע',
  'ירדן',
  'ערב הסעודית',
  'אש"ף',
  'מחמוד עבאס',
  'ראש ממשלת טורקיה',
  "רג'פ טאיפ ארדואן",
  'האומות המאוחדות',
  'עבד אל-פתאח א-סיסי',
  'הבחירות לנשיאות מצרים (2014)',
  '8 ביוני',
  '2014',
  'ההפיכה במצרים (2011)',
  'מהומות הלחם',
  'תנועת הנוער של ה-6 באפריל',
  'נשים באביב הערבי במצרים',
  'Ynet'],
 'hi': ['मुहम्मद मुर्सी', 'मुहम्मद मोरसी', 'बराक ओबामा'],
 'id': ['Mesir',
  'Mohamed Morsi',
  'Abdul Fatah al-Sisi',
  'Adly Mansour',
  'Ikhwanul Muslimin',
  'Ahmed el-Thayeb',
  'Paus Theodoros II dari Aleksandria',
  'Mohamed ElBaradei'],
 'it': ['Colpo di Stato',
  '2013',
  "Presidenti dell'Egitto",
  'Egitto',
  'Mohamed Morsi',
  'Tamarrud',
  '2013',
  'Fratelli Musulmani',
  'Forze armate egiziane',
  'Generale',
  'Abd al-Fattah al-Sisi',
  'Il Cairo',
  'Twitter',
  'Governo di coalizione',
  'Misure cautelari personali coercitive',
  'Abd al-Fattah al-Sisi',
  'Ad interim',
  'Adli Mansur',
  "Sa'd al-Katatni",
  'Rashad al-Bayumi',
  "Mohammed Badi'",
  'Adli Mansur',
  'Consiglio della Shūra',
  '2012',
  'Mohamed El Baradei',
  'Fratelli Musulmani',
  'Salafiti',
  'Partito al-Nur',
  'Oxford',
  "Ziyad Baha' al-Din",
  'Partito Socialdemocratico Egiziano',
  'Ad interim',
  'Ad interim',
  'Salafiti',
  'Liberalismo',
  'Al Jazeera',
  'Qatar',
  'Gasdotto',
  'Giordania',
  'Moschea',
  'Rābiʿa al-ʿAdawiyya',
  'Nasr City (la pagina non esiste)',
  'Fratelli Musulmani',
  'Al Jazeera',
  'Cecchini',
  "Muhammad al-Barade'i",
  'Twitter',
  'Agence France Presse',
  'Partito Libertà e Giustizia',
  'Il Cairo',
  'Primo ministro',
  'Ad interim',
  'Liberalismo',
  'Hazem al-Beblawi',
  'Ad interim',
  'Tamàrrud',
  'Twitter',
  'Penisola del Sinai',
  'Hazem al-Beblawi',
  "Mohammed Badi'",
  'Professore',
  'Medio Oriente',
  'Università di Harvard',
  'Il manifesto',
  'Huffington Post',
  'Massimo Campanini',
  'Le Figaro',
  'The Guardian',
  'Internazionale (rivista)',
  'Referendum',
  'Tamarrud',
  'Primavera araba',
  'Fratelli Musulmani',
  'Elezioni presidenziali in Egitto del 2012',
  'Mohamed Morsi',
  'Rivoluzione egiziana del 2011',
  'Collabora a Wikimedia Commons'],
 'ja': ['エジプト',
  '2013年',
  '7月3日',
  'エジプト軍',
  'ムハンマド・ムルシー',
  'クーデター',
  'エジプト革命 (2011年)',
  'ホスニー・ムバーラク',
  'ムスリム同胞団',
  'アブドルモネイム・アブールフトゥーフ',
  'ハイラト・シャーテル',
  '自由と公正党',
  '文民統制',
  'カタール',
  'レンティア国家',
  '国際通貨基金',
  'エジプト・ポンド',
  'エチオピア',
  'スーダン',
  '新自由主義',
  '労働組合',
  '国際労働機関',
  '裁判所',
  '警察国家',
  '国境なき記者団',
  '2012年エジプト大統領選挙',
  'アフマド・シャフィーク',
  'エジプト革命 (1952年) (存在しないページ)',
  'イスラエル',
  '中東戦争',
  'エジプト軍',
  '軍産複合体',
  '民主主義',
  'アブドルファッターフ・アッ=シーシー',
  'エジプト軍最高評議会',
  'タマッルド(抵抗) (存在しないページ)',
  'en:Tamarod',
  '中央治安部隊 (存在しないページ)',
  'en:Central Security Forces',
  'タハリール広場',
  'アレクサンドリア',
  'マンスーラ',
  'ミヌーフィーヤ県',
  'タンタ',
  'エル=マハッラ・エル=コブラ',
  'スエズ',
  'ポートサイド',
  'ザガジグ',
  'アブドルファッターフ・アッ=シーシー',
  'ロードマップ',
  '政党連合',
  '国民救済戦線 (存在しないページ)',
  'en:National Salvation Front (Egypt)',
  'アドリー・マンスール',
  'モハメド・エルバラダイ',
  'コプト正教会',
  '教皇',
  'スンナ派',
  'アル=アズハル大学',
  'ハーゼム・エル=ベブラーウィー',
  'ムスリム同胞団',
  '自由と公正党',
  'ヌール党',
  '外交官',
  'ナビール・ファフミー (存在しないページ)',
  'en:Nabil Fahmy',
  '世界銀行',
  'エコノミスト',
  '外貨準備',
  'エジプト革命 (2011年)',
  '潘基文',
  'ムハンマド・バディーウ',
  'ハイラト・シャーテル',
  'ワサト党',
  'イエメン',
  'ノーベル平和賞',
  'タワックル・カルマン',
  'カイロ大学',
  'ラーバア・アダウィーヤ広場 (存在しないページ)',
  'en:Rabaa Al-Adawiya Mosque',
  'モハメド・エルバラダイ',
  '民主主義',
  'エジプト革命 (2011年)',
  'アスユート',
  'シュプレヒコール',
  'カトリック教会',
  'バラク・オバマ',
  'トルコ',
  'ムスタファ・ケマル・アタテュルク',
  'トルコ軍',
  '2013年トルコ反政府運動',
  'レジェップ・タイイップ・エルドアン',
  'カタール',
  'シリア騒乱',
  'アルジャジーラ',
  'シリア騒乱',
  'アルジャジーラ',
  'アル・ハヤト',
  'CNN',
  '機関銃',
  '自動小銃',
  'カービン',
  'ナイフ',
  '火炎瓶',
  'サウジアラビア',
  'アブドゥッラー・ビン・アブドゥルアズィーズ',
  'サウード・アル=ファイサル',
  'ヨルダン',
  'アラブ首長国連邦',
  'クウェート',
  'ニューヨーク・タイムズ',
  'チャック・ヘーゲル',
  'ジョン・マケイン',
  'ファタハ',
  'モスク',
  'カイロ県',
  '紀元前14世紀',
  'アマルナ',
  'ミニヤー県',
  'マラウィ国立博物館 (エジプト)',
  '古代エジプト',
  '逮捕',
  'アラブの春',
  '2011年リビア内戦',
  'ソーシャル・ネットワーキング・サービス',
  'AK-47',
  'コプト正教会',
  'シナイ半島',
  'ジハード主義',
  'イスラエル',
  '潘基文',
  '国際連合事務総長',
  'アルカーイダ',
  'ギーザ',
  'アルカーイダ',
  'アイマン・ザワーヒリー',
  'サラフィー主義',
  'ハマース',
  'ガザ地区',
  '4月6日運動',
  'ギーザ県',
  'ムハンマド・ベルタギー',
  'ディムヤート',
  'アレクサンドリア',
  'ラファフ',
  'ベニスエフ県',
  'アリーシュ',
  'タハリール広場',
  '第4次中東戦争',
  'イスマイリア',
  'カイロ大学',
  'ポートサイド',
  'アズハル大学',
  'ザガジグ大学',
  'ナイル川デルタ',
  'マンスーラ',
  '自由公正党',
  'イサーム・エル=エリヤーン',
  'ザガジグ',
  'CAFチャンピオンズリーグ',
  'アル・アハリ',
  'FIFAクラブワールドカップ2013',
  '非常事態宣言',
  '夜間外出禁止令',
  'タンタ',
  'ヘルワーン',
  'ペルソナ・ノン・グラータ',
  '4月6日運動',
  'ダカリーヤ県',
  'マンスーラ',
  'en:Ansar Bait al-Maqdis',
  'ディムヤート',
  'イブラヒーム・メフレブ',
  '催涙弾',
  'モハメド・バディア (存在しないページ)',
  '大ムフティー',
  '6月2日',
  'ISIL',
  'ロシア',
  'イラン',
  'カナダ人',
  'ギザの大ピラミッド',
  '8月31日',
  'アブ・シンベル神殿',
  'タバ',
  'シャルム・エル・シェイク',
  'アメリカ合衆国ドル',
  '失業率',
  'クーデター',
  'ジョン・ケリー',
  '2012年エジプト大統領選挙',
  'アムル・ムーサ',
  'ジョン・マケイン',
  'イギリス',
  '日本',
  '国際連合の旗',
  '国際連合',
  '潘基文',
  'イスラム協力機構',
  'アフリカ連合',
  '日本の旗',
  '日本',
  '岸田文雄',
  'トヨタ自動車',
  'スズキ (企業)',
  '大塚製薬',
  '住友電気工業',
  'ソニー',
  '東京海上日動火災',
  '住友商事',
  '伊藤忠商事',
  '丸紅',
  '豊田通商',
  '双日',
  '三菱東京UFJ銀行',
  '三井住友銀行',
  '三井物産',
  '青年海外協力隊',
  '国際協力機構',
  '中華人民共和国の旗',
  '中華人民共和国',
  'ロシアの旗',
  'ロシア',
  'イランの旗',
  'イラン',
  'モハンマド・ジャヴァード・ザリーフ',
  'カタールの旗',
  'カタール',
  'タミーム・ビン・ハマド・アール=サーニー',
  'アラブ首長国連邦の旗',
  'アラブ首長国連邦',
  'サウジアラビアの旗',
  'サウジアラビア',
  'アブドゥッラー・ビン・アブドゥルアズィーズ',
  'シリアの旗',
  'シリア',
  'バッシャール・アル=アサド',
  'ヨルダンの旗',
  'ヨルダン',
  'イスラエルの旗',
  'イスラエル',
  'エイラート',
  'エジプト・イスラエル平和条約',
  'ベンヤミン・ネタニヤフ',
  'トルコの旗',
  'トルコ',
  'レジェップ・タイイップ・エルドアン',
  'アフメト・ダウトオール',
  'リビアの旗',
  'リビア',
  'アリー・ゼイダーン',
  'チュニジアの旗',
  'チュニジア',
  'モンセフ・マルズーキ',
  'ナフダ',
  'アメリカ合衆国の旗',
  'アメリカ合衆国',
  'バラク・オバマ',
  '10月9日',
  'イギリスの旗',
  'イギリス',
  'ウィリアム・ヘイグ',
  'スペインの旗',
  'スペイン',
  'フランスの旗',
  'フランス',
  'イタリアの旗',
  'イタリア',
  'エンマ・ボニーノ',
  'ドイツの旗',
  'ドイツ',
  'デンマークの旗',
  'デンマーク',
  'スウェーデンの旗',
  'スウェーデン',
  'カール・ビルト',
  'アルゼンチンの旗',
  'アルゼンチン'],
 'ko': ['2013년',
  '7월 3일',
  '이집트',
  '대통령',
  '무함마드 모르시',
  '헌법',
  '가택 연금',
  '무슬림 형제단',
  '6월 30일'],
 'nl': ['Moslimbroederschap',
  'Mohamed Morsi',
  'Hosni Moebarak',
  'Egyptische Revolutie (2011)',
  'Egyptische Revolutie (2011)',
  'Arabische Lente',
  'Mohamed Morsi',
  'Egypte (land)',
  'Economie (systeem)',
  'Egyptisch pond',
  'Soennisme',
  'Kopten',
  'Sjiisme',
  'Caïro (stad)',
  'Tamarod',
  'Moslimbroederschap',
  'Krijgsmacht',
  'Abdul Fatah al-Sisi',
  'Staatsgreep',
  'Adly Mansour',
  'Egyptische presidentsverkiezingen in 2014',
  'Hamdin Sabahi',
  'Sit-in',
  'Moslimbroederschap',
  'Noodtoestand',
  'Avondklok',
  'Kopten'],
 'pl': ['Zamach stanu',
  'Muhammad Mursi',
  'Kryzys polityczny w Egipcie (2012–2014)',
  'Abd al-Fattah as-Sisi',
  'Tamarrud',
  'Adli Mansur',
  'Bracia Muzułmańscy',
  'Al-Dżazira',
  'Unia Afrykańska',
  'Zamieszki na Madagaskarze (2009)',
  'Zamach stanu w Nigrze (2010)',
  'II wojna domowa na Wybrzeżu Kości Słoniowej',
  'Zamach stanu w Mali (2012)',
  'Zamach stanu w Gwinei Bissau (2012)',
  'Konflikt w Republice Środkowoafrykańskiej',
  'Kair',
  'Stan wyjątkowy'],
 'pt': ['Egito',
  'Mohamed Mursi',
  'Abdul Fatah Khalil Al-Sisi',
  '30 de junho',
  '2013',
  'Cairo',
  '1 de julho',
  'Irmandade Muçulmana',
  '3 de julho',
  'Adly Mansour',
  'Prisão domiciliar',
  'Ahmed el-Tayeb',
  'Papa da Igreja Ortodoxa Copta de Alexandria',
  'Papa Teodoro II de Alexandria',
  'Mohamed ElBaradei',
  'Qatar',
  'Tunísia',
  'Estados Unidos',
  'União Africana',
  'Protesto sentado',
  'Violência política no Egito (2013–presente)',
  'Revolução Egípcia de 2011',
  'Violência política no Egito (2013–2014)',
  'Portal do Egito',
  'Portal da história',
  'Portal da política'],
 'ro': ['Mohamed Morsi',
  'Egipt',
  'Cairo',
  'Piața Tahrir',
  'Alexandria, Egipt',
  'Port Said',
  'Suez',
  'Cairo',
  'Frăția Musulmană',
  'Cairo',
  'Limba arabă',
  'Kefaya — pagină inexistentă',
  'Hosni Mubarak',
  'Revoluția egipteană din 2011',
  'Siria',
  'Armata egipteană — pagină inexistentă',
  'Hisham Zazou — pagină inexistentă',
  'Luxor',
  'Atef Helmi — pagină inexistentă',
  'Hatem Bagato — pagină inexistentă',
  'Khaled Abdel Aal — pagină inexistentă',
  'Al-Ahram — pagină inexistentă',
  'Sami Hafez Anan — pagină inexistentă',
  'Mohamed Kamel Amr — pagină inexistentă',
  'BBC',
  'Qatar',
  'Al Jezeera — pagină inexistentă',
  'Organizația Națiunilor Unite',
  'Statele Unite',
  'Barack Obama',
  'Tanzania'],
 'ru': ['Ас-Сиси, Абдул-Фаттах Халил',
  'Мурси, Мухаммед',
  'Братья-мусульмане',
  'Коптская церковь',
  'Феодор II (коптский Патриарх Александрийский)',
  'Эль-Барадеи, Мохаммед',
  'Мансур, Адли',
  'Википедия:Ссылки на источники',
  'Братья-мусульмане',
  'Каир',
  'Александрия',
  'Асьют',
  'Братья-мусульмане',
  'Аль-Баблауи, Хазем',
  'Эль-Барадеи, Мохаммед',
  'Хамас',
  'Президентские выборы в Египте (2014)',
  'Ас-Сиси, Абдул-Фаттах Халил',
  'Каир',
  'Гиза',
  'Копты',
  '4 октября',
  'Каир',
  'Reuters',
  'Пшеница',
  'Саудовская Аравия',
  'Саудовская Аравия',
  'Абдалла ибн Абдель Азиз Аль Сауд',
  'Сирия',
  'Сирия',
  'Асад, Башар',
  'Турция',
  'Турция',
  'Эрдоган, Реджеп Тайип',
  'Европейский союз',
  'Палестинская национальная администрация',
  'Хамас',
  'Хания, Исмаил',
  'ФАТХ',
  'Африканский союз',
  'Египетская революция 2011 года',
  'R4BIA',
  'Густерин, Павел Вячеславович'],
 'sr': ['3. јул',
  '2013',
  'Мухамед Мурси',
  'Јун',
  '1. јул',
  '3. јул',
  'Хосни Мубарак',
  'Фебруар',
  '2011',
  'Април',
  'Тамарод (страница не постоји)',
  '2004',
  '28. јун',
  'Каиро',
  'Генерал',
  'Абдел Фатах ел Сиси',
  'Устав',
  'Адли Мансур',
  '4. јул',
  'Трг Тахрир',
  'Мухамед ел Барадеи (страница не постоји)',
  'Папа Теодор II од Александрије (страница не постоји)',
  'Синајско полуострво',
  '10. јул',
  'Тунис',
  'Сједињене Америчке Државе',
  'Афричка унија',
  'Протести у Египту (2011)',
  'Демонстрације у Египту (2012—2013) (страница не постоји)'],
 'tg': ['2013',
  'Муҳаммад Мурсӣ',
  'Инқилоби 2011 Миср (саҳифа вуҷуд надорад)',
  'Муҳаммад Албародай (саҳифа вуҷуд надорад)',
  'Майдони Таҳрир (саҳифа вуҷуд надорад)',
  'Қоҳира',
  'Абду Фатаҳ Халил Ал-Сийсӣ'],
 'tr': ['Abdülfettah el Sisi',
  'Mısır Silahlı Kuvvetleri',
  '2012-13 Mısır protestoları',
  'Muhammed Mursi',
  '2012 Mısır cumhurbaşkanlığı seçimleri',
  'İslamcılık',
  'Kahire',
  'Müslüman Kardeşler',
  'Sağlık ve Nüfus Bakanlığı (Mısır) (sayfa mevcut değil)',
  'Mukattam (sayfa mevcut değil)',
  'Mısır Anayasası (sayfa mevcut değil)',
  'Mısır Yüksek Anayasa Mahkemesi',
  'Adli Mansur',
  'Teknokrasi',
  'El Ezher Baş İmamı (sayfa mevcut değil)',
  'Ahmed El Tayyip (sayfa mevcut değil)',
  'II. Tavadros (sayfa mevcut değil)',
  'Muhammed El Baradey',
  'Arap Baharı',
  'Tunus',
  'Afrika Birliği',
  'Darbe',
  'Devrim',
  '2013 Mısır katliamı',
  '2011 Mısır Devrimi',
  'Hüsnü Mübarek',
  '2012 Mısır cumhurbaşkanlığı seçimleri',
  'The Wall Street Journal',
  'Amr Musa',
  'Hamdin Sabahi (sayfa mevcut değil)',
  'Temerrud (sayfa mevcut değil)',
  'Ulusal Kurtuluş Cephesi (Mısır) (sayfa mevcut değil)',
  '6 Nisan Gençlik Hareketi (sayfa mevcut değil)',
  'Güçlü Mısır Partisi (sayfa mevcut değil)',
  'Rabiatül Adeviyye Camii (sayfa mevcut değil)',
  'Mermi',
  'Barack Obama',
  'Türkiye Cumhuriyeti',
  'Abdullah Gül',
  'Birleşmiş Milletler'],
 'uk': ['3 липня',
  '2013',
  'Мухаммед Мурсі',
  'Абдул Фатах Аль-Сісі',
  'Брати-мусульмани',
  'Коптська церква',
  'Федір ІІ (Тавадрос ІІ) (ще не написана)',
  'Мухаммед аль-Барадаї',
  'Адлі Мансур',
  'Каїр',
  'Александрія',
  'Асьют',
  'Хазем Аль-Баблаї (2013) (ще не написана)',
  'Мухаммед аль-Барадаї',
  'Reuters',
  'Пшениця',
  'Ісламський світ',
  'Туреччина',
  'Катар',
  'Саудівська Аравія',
  'Кувейт',
  'ОАЕ',
  'Туреччина',
  'Реджеп Таїп Ердоган',
  'Туреччина',
  'Партія справедливості та розвитку (Туреччина)',
  'Європейський союз',
  'Ізраїль',
  'Хосні Мубарак',
  'Саудівська Аравія',
  'Саудівська Аравія',
  'Абдалла ібн Абдель Азіз Аль Сауд',
  'Сирія',
  'Сирія',
  'Башар Асад',
  'Палестинська держава',
  'Хамас',
  'Ісмаїл Ханія',
  'ФАТХ',
  'Революція в Єгипті (2011)'],
 'ur': ['محمد مرسی', 'نواز شریف'],
 'vi': ['Mohamed Morsi',
  'Mohamed Morsi',
  'Cairo',
  'Alexandria',
  'Port Said',
  'Suez',
  'Anh em Hồi giáo',
  'Hosni Mubarak',
  'Human Rights Watch',
  'Hasim al-Beblawi (trang chưa được viết)',
  'Liên Hiệp Quốc',
  'Syria',
  'Omran al-Zoubi (trang chưa được viết)',
  'Anh',
  'David Cameron',
  'Viện Thứ dân của Anh (trang chưa được viết)',
  'Hoa Kỳ',
  'Barack Obama',
  'Tanzania',
  'Tổ chức Theo dõi Nhân quyền',
  'Liên minh châu Phi',
  'Nkosazana Dlamini-Zuma (trang chưa được viết)',
  'Liên minh châu Âu',
  'Đại diện cấp cao của Liên minh về Vấn đề Ngoại giao và Chính sách An ninh (trang chưa được viết)',
  'Catherine Ashton (trang chưa được viết)',
  'Liên Hiệp Quốc',
  'Ban Ki-moon',
  'Nabil Fahmy (trang chưa được viết)',
  'Navi Pillay (trang chưa được viết)',
  'Argentina',
  'Úc',
  'Kevin Rudd',
  'Bahrain',
  'Hamad bin Isa Al-Khalifa (trang chưa được viết)',
  'Canada',
  'John Baird (chính trị gia Canada) (trang chưa được viết)',
  'Trung Quốc',
  'Đức',
  'Guido Westerwelle',
  'Tunisia',
  'Tunisia',
  'Al-Qaeda',
  'Ayman al-Zawahiri',
  'Sharia',
  'Mùa xuân Ả Rập',
  'Biểu tình Ai Cập 2012-13',
  'From Dictatorship to Democracy (sách)',
  'Tự do chính trị'],
 'zh': ['埃及',
  '阿卜杜勒-法塔赫·塞西',
  '穆罕默德·穆尔西',
  '阿德里·曼苏尔',
  '穆斯林兄弟会',
  '政变',
  '納賽爾',
  '萨达特',
  '穆巴拉克',
  '世俗主義',
  '持不同政見者',
  '穆斯林兄弟會',
  '2012年埃及总统选举',
  '世俗國家',
  '艾哈迈德·沙菲克',
  '空軍',
  '穆巴拉克',
  '埃及总理',
  '穆罕默德·侯赛因·坦塔维',
  '萨米·阿南',
  '阿卜杜勒-法塔赫·塞西',
  '西德基·苏卜希',
  '萨拉菲派(页面不存在)',
  '女性',
  '少數族群',
  '公民國家(页面不存在)',
  '世俗主義',
  '阿卜杜勒-法塔赫·塞西',
  '以色列',
  '内塔尼亚胡',
  '塔里克·拉曼丹',
  '半岛电视台',
  '软禁',
  '逮捕',
  '财产',
  '冻结(页面不存在)',
  '间谍',
  '拘留',
  '民意',
  '2013年共和國衛隊總部衝突',
  '半岛电视台',
  '路透社',
  'BBC',
  '反人类罪',
  '終身監禁',
  '亚历山大',
  '法医',
  '清场(页面不存在)',
  '恐怖组织',
  '明亚',
  '死刑',
  '終身監禁',
  '警察',
  '国际特赦组织',
  '联合国',
  '穆斯林兄弟会',
  '恐怖组织',
  '美国',
  '巴沙尔·阿萨德',
  '威廉·海格',
  '參議員',
  '格雷厄姆(页面不存在)',
  '麦凯恩',
  '加利福尼亚大学',
  '半岛电视台',
  '美国国务院',
  '民主局(页面不存在)',
  '人权与劳工局(页面不存在)',
  '中东伙伴计划(页面不存在)',
  '国际开发署(页面不存在)',
  '正义与发展党',
  '共和人民黨 (土耳其)',
  '内战',
  '潘基文',
  'Catherine Ashton',
  '非洲联盟',
  '報復',
  '电视频道',
  '言论自由',
  '于时语(页面不存在)',
  '纽约时报',
  '利益',
  '世袭',
  '土耳其',
  '巴基斯坦',
  '宪政',
  '阿拉伯世界',
  '以色列',
  '伊朗',
  '巴列维',
  '摩薩台',
  '反美',
  '极端主义',
  '何清涟',
  '联合早报',
  '社论',
  '泰国',
  '2011年埃及革命',
  '2012年埃及总统选举',
  '2013年土耳其反政府抗议运动',
  '自由与正义党',
  '2013年共和國衛隊總部衝突',
  '2013年埃及政變事後影響']}
page_outlinks = get_page_outlinks(page_title)
page_outlinks[:10]
['Abdel Fattah el-Sisi',
 'Mohamed Morsi',
 'Egyptian Constitution of 2012',
 'June 2013 Egyptian protests',
 'Muslim Brotherhood',
 'Supreme Constitutional Court of Egypt',
 'Adly Mansour',
 'Grand Imam of al-Azhar',
 'Ahmed el-Tayeb',
 'Pope of the Coptic Orthodox Church of Alexandria']

You could write a recursive function like recursively_get_hyperlink_network that would crawl the hyperlink network out to an arbitrary distance, but this is becomes exhorbitantly expensive at any depth greater than 1.

Here's an example function, but is not executable to prevent you from harming yourself. :)

def recursively_get_hyperlink_network(seed_page,depth): neighbors = {} if depth < 0: return neighbors neighbors[seed_page] = get_page_outlinks(seed_page) for neighbor in neighbors[seed_page]: neighbors[neighbor] = get_hyperlink_network(neighbor,depth-1) return neighbors
 req = requests.get("https://en.wikipedia.org/w/api.php?action=query&titles=2013%20Egyptian%20coup%20d'état&prop=langlinks")
 
    # Replace spaces with underscores
    page_title = page_title.replace(' ','_')
    
   # bad_titles = ['Special:','Wikipedia:','Help:','Template:','Category:','International Standard','Portal:','s:','File:']
    
    # Get the response from the API for a query
    # After passing a page title, the API returns the HTML markup of the current article version within a JSON payload
    req = requests.get("https://en.wikipedia.org/w/api.php?action=parse&format=json&page={0}&prop=langlinks".format(page_title,redirects))
    
    # Read the response into JSON to parse and extract the HTML
    json_string = json.loads(req.text)
    
    # Initialize an empty list to store the links
    #outlinks_list = [] 
    
    #if 'parse' in json_string.keys():
        #page_html = json_string['parse']['text']['*']

        # Parse the HTML into Beautiful Soup
        #soup = BeautifulSoup(page_html,'lxml')

        # Delete tags associated with templates
        #for tag in soup.find_all('tr'):
            #tag.replace_with('')

        # For each paragraph tag, extract the titles within the links
        #for para in soup.find_all('p'):
           # for link in para.find_all('a'):
                #if link.has_attr('title'):
                   # title = link['title']
                    # Ignore links that aren't interesting
                    #if all(bad not in title for bad in bad_titles):
                        #outlinks_list.append(title)

        # For each unordered list, extract the titles within the child links
        #for unordered_list in soup.find_all('ul'):
            #for item in unordered_list.find_all('li'):
                #for link in item.find_all('a'):
                    #if link.has_attr('title'):
                        #title = link['title']
                        # Ignore links that aren't interesting
                        #if all(bad not in title for bad in bad_titles):
                            #outlinks_list.append(title)

    #return outlinks_list
  File "<ipython-input-25-7687550297f9>", line 46
    #return outlinks_list
                         ^
SyntaxError: unexpected EOF while parsing
 
page_outlinks = get_page_outlinks(page_title)
page_outlinks[:10]
['Abdel Fattah el-Sisi',
 'Mohamed Morsi',
 'Egyptian Constitution of 2012',
 'June 2013 Egyptian protests',
 'Muslim Brotherhood',
 'Supreme Constitutional Court of Egypt',
 'Adly Mansour',
 'Grand Imam of al-Azhar',
 'Ahmed el-Tayeb',
 'Pope of the Coptic Orthodox Church of Alexandria']

Instead, define a simple function to get the 1.5-step ego hyperlink network. The "ego" is the seed page you start from, the "alters" are the neighbors that the ego links out to. We also get the alters of the alters (2nd order alters), but only include these 2nd order connections if they link to 1st order alters. In other words, the 1.5-step ego hyperlink network are all the pages linked from the seed page and the connections among this set of articles.

def get_hyperlink_alters(seed_page):
    # Initialize an empty dictionary to act as an adjacency "list"
    neighbors = {}
    
    # Get all the alters for the seed page and store them in the adjacency dictionary
    neighbors[seed_page] = get_page_outlinks(seed_page,1)
    
    # For each of the alters, get their alters and store in the adjacency dictionary
    for neighbor in list(set(neighbors[seed_page])): # Don't recrawl duplicates
        neighbors[neighbor] = get_page_outlinks(neighbor,0)
    
    # Initialize an empty graph that we will add nodes and edges into
    g = nx.DiGraph()
    
    # For each entry in the adjacency dictionary, check if the alter's alters are also the seed page's alters
    # If they are and the edge is already in the graph, increment the edge weight by one
    # If they are but the edge is not already in the graph, add the edge with a weight of one
    for article,neighbor_list in neighbors.items():
        for neighbor in neighbor_list:
            if neighbor in neighbors[seed_page] + [seed_page]:
                if g.has_edge(article,neighbor):
                    g[article][neighbor]['weight'] += 1
                else:
                    g.add_edge(article,neighbor,weight=1)
    
    # Return the weighted graph
    return g

Run this on an example article and save the resulting graph object to disk.

This step could take more than a minute depending on the number of links and size of the neighboring pages.

# Create the hyperlink network
hyperlink_g = get_hyperlink_alters(page_title)

# Save the graph to disk to visualize in Gephi
nx.write_graphml(hyperlink_g,'hyperlink_{0}.graphml'.format(page_title.replace(' ','_')))
hg_nodes = hyperlink_g.number_of_nodes()
hg_edges = hyperlink_g.number_of_edges()

print("There are {0} nodes and {1} edges in the hyperlink network.".format(hg_nodes,hg_edges))
There are 530 nodes and 5644 edges in the hyperlink network.
hg_density = nx.density(hyperlink_g)
print('{0:.2%} of the possible edges actually exist.'.format(hg_density))
2.01% of the possible edges actually exist.
def reciprocity(g):
    reciprocated_edges = []
    
    for (i,j) in g.edges():
        if hyperlink_g.has_edge(j,i):
            reciprocated_edges.append((i,j))
    
    return len(reciprocated_edges)/float(g.number_of_edges())

hg_reciprocity = reciprocity(hyperlink_g)

print('{0:.2%} of the edges in the hyperlink network are reciprocated.'.format(hg_reciprocity))
32.16% of the edges in the hyperlink network are reciprocated.

Play the Wikipedia Game!

Using only the hyperlinks on the article, try to get from the first article to the second article.

page1,page2 = np.random.choice(list(hyperlink_g.nodes()),2)
print("Try to navigate from \"{0}\" to \"{1}\" using only hyperlinks.\n".format(page1,page2))
print("Start at: https://en.wikipedia.org/wiki/{0}".format(page1.replace(' ','_')))
Try to navigate from "Sunny (dog)" to "Electoral College (United States)" using only hyperlinks.

Start at: https://en.wikipedia.org/wiki/Sunny_(dog)

No cheating!

After you've played the game a few times, see what an optimal shortest path is. You may get an error indicating there is no shortest path, in which case, try a new pair of nodes.

nx.shortest_path(hyperlink_g,page1,page2)
['Sunny (dog)',
 'Portuguese Water Dog',
 'Barack Obama',
 'Electoral College (United States)']

The shortest path length is the path connecting two nodes in the fewest steps. This is related to the "small world" effect where everyone in the world is just a few handshakes from each other. It's rare to find complex networks where the longest shortest path is above 5. Nodes that are this far from each other are likely about very unrelated topics.

If there are no paths greater than 5, lower the path_length_threshold from 5 to 4.

The long_path_lengths dictionary below is populated by computing all the shortest path lengths between nodes in the network and only keeping those paths that are longer than 5 steps from each other. In a directed graph like our hyperlink network, it's important to follow the direction of the arrows: if page A links to page B but page B doesn't link to page A, then we can't make a shortest path from B to A, we have to find another path.

path_length_threshold = 4
long_path_lengths = {}

for k,d in nx.all_pairs_shortest_path_length(hyperlink_g).items():
    long_paths = [v for v,l in d.items() if l > path_length_threshold]
    if len(long_paths) > 0:
        long_path_lengths[k] = long_paths
        
long_path_lengths.keys()
dict_keys(['National Association for Business Economics', 'Metropolitan Transportation Authority'])

The shortest path between the articles can be identified using the shortest_path function and supplying the graph and the names of two nodes.

# Randomly choose two articles in the list of long shortest paths
page1,page2 = np.random.choice(list(long_path_lengths.keys()),2)
print("The two pages randomly selected are: \"{0}\" and \"{1}\"".format(page1,page2))

# Display the path between these articles
nx.shortest_path(hyperlink_g,page1,page2)
The two pages randomly selected are: "Metropolitan Transportation Authority" and "National Association for Business Economics"
['Metropolitan Transportation Authority',
 'New York City Subway',
 'Racial profiling',
 'George W. Bush',
 'Barack Obama',
 'National Association for Business Economics']

Test out different combinations of articles from the long_path_lengths to find the articles that are farthest apart by entering different article names for page1 and page2.

page1 = 'National Association for Business Economics'
page2 = 'NATO'
nx.shortest_path(hyperlink_g,page1,page2)
['National Association for Business Economics',
 'Congressional Budget Office',
 'United States Congress',
 'World War II',
 'NATO']
hg_in_degree_d = {node:int(centrality*(len(hyperlink_g) - 1)) for node,centrality in nx.in_degree_centrality(hyperlink_g).items()}
hg_out_degree_d = {node:int(centrality*(len(hyperlink_g) - 1)) for node,centrality in nx.out_degree_centrality(hyperlink_g).items()}

Look at the nodes with the highest in-degree: other pages in the network point to this page.

degree_df = pd.DataFrame({'In':hg_in_degree_d,'Out':hg_out_degree_d})
degree_df['In'].sort_values(ascending=False).head(10)
Barack Obama                              265
President of the United States            148
The New York Times                        112
United States Senate                      110
George W. Bush                            110
Democratic Party (United States)          102
Republican Party (United States)           90
United States Congress                     88
Bill Clinton                               88
United States House of Representatives     86
Name: In, dtype: int64

Look at the nodes with the highest-out-degree: these pages point to many other pages.

degree_df['Out'].sort_values(ascending=False).head(10)
Barack Obama                                         529
Presidency of Barack Obama                           141
Joe Biden                                             67
Hillary Clinton                                       60
Timeline of the presidency of Barack Obama (2009)     56
George W. Bush                                        53
Tim Kaine                                             44
United States presidential election, 2008             43
Bill Clinton                                          43
Democratic Party (United States)                      43
Name: Out, dtype: int64

Look at the nodes that have no links out.

degree_df.query('Out == 0')['Out']
Associate attorney                                   0
Calvert School                                       0
DMOZ                                                 0
Default (finance)                                    0
Drilling rig                                         0
Foreign student                                      0
Glamour (magazine)                                   0
Harris Interactive                                   0
Hopkins & Sutter                                     0
IMDb                                                 0
Inaugural address                                    0
Indoor tanning                                       0
International Herald Tribune                         0
Joint Political Military Group                       0
Listen                                               0
Marijuana                                            0
Money (magazine)                                     0
Office of the Vice President of the United States    0
Ovarian cancer                                       0
Prisoner exchange                                    0
Resurrection of Jesus                                0
Tax bracket                                          0
University of Nairobi                                0
University-preparatory school                        0
Uterine cancer                                       0
Wailuku, Hawaii                                      0
Name: Out, dtype: int64

Look at nodes that have a single link in. These are also known as (in-) pendants. If there are none, it should appear as an empty series.

degree_df.query('In == 1')['In']
137th Street – City College (IRT Broadway – Seventh Avenue Line)                                    1
2005 American League Championship Series                                                            1
2009 Major League Baseball All-Star Game                                                            1
Alice Palmer (politician)                                                                           1
Assassination threats against Barack Obama                                                          1
Bernie Mac                                                                                          1
Besuki Public School                                                                                1
Business International Corporation                                                                  1
Calvert School                                                                                      1
Chlorine gas                                                                                        1
David D. McKiernan                                                                                  1
Death of Nelson Mandela                                                                             1
Deepwater drilling                                                                                  1
Democratic Party presidential primaries, 2012                                                       1
Energy policy of the United States                                                                  1
Foreign student                                                                                     1
Fraud Enforcement and Recovery Act of 2009                                                          1
George Robertson, Baron Robertson of Port Ellen                                                     1
Glamour (magazine)                                                                                  1
Hiroshima Peace Memorial Museum                                                                     1
Illinois Secretary of State                                                                         1
Indiana Governor                                                                                    1
Indonesian Language                                                                                 1
Innovation economics                                                                                1
Iraqi insurgency (2011–13)                                                                          1
J-1 visa                                                                                            1
Joint Political Military Group                                                                      1
Kapiolani Medical Center for Women and Children                                                     1
LGBT American                                                                                       1
National Association of Black Journalists                                                           1
National Broadband Plan (United States)                                                             1
Nunn–Lugar Cooperative Threat Reduction                                                             1
Nyang’oma Kogelo                                                                                    1
Office of Energy Efficiency and Renewable Energy                                                    1
Oslo                                                                                                1
Ovarian cancer                                                                                      1
Petroleum exploration in the Arctic                                                                 1
Project Vote                                                                                        1
Public-Private Investment Program for Legacy Assets                                                 1
Russian military intervention in Syria                                                              1
SPEECH Act                                                                                          1
Somerville, Massachusetts                                                                           1
Sponsor (legislative)                                                                               1
St. John's Episcopal Church, Lafayette Square                                                       1
Stay with It                                                                                        1
Steeler Nation                                                                                      1
U.S. Government Assessment of the Syrian Government’s Use of Chemical Weapons on August 21, 2013    1
United States Senate career of Barack Obama                                                         1
United States presidential visits to Sub-Saharan Africa                                             1
Virginia Governor                                                                                   1
Voter registration campaign                                                                         1
Westminster Hall                                                                                    1
White House Office of Energy and Climate Change Policy                                              1
Name: In, dtype: int64

Look at the nodes with a single link out. These are also known as (out-)pendants. If there are none, it should appear as an empty series.

degree_df.query('Out == 1')['Out']
Anthropology                                                                                       1
Audiobook                                                                                          1
Bachelor of Arts                                                                                   1
Cairo University                                                                                   1
Chicago Lawn, Chicago                                                                              1
Chlorine gas                                                                                       1
Christianity Today                                                                                 1
Cocaine                                                                                            1
Congressional Budget Office                                                                        1
Congressional Quarterly                                                                            1
Constitutional law                                                                                 1
Debt ceiling                                                                                       1
Disinvestment from Iran                                                                            1
Earmark (politics)                                                                                 1
Education in Africa                                                                                1
Embryonic stem cell                                                                                1
Fiat                                                                                               1
Fisher House Foundation                                                                            1
Hartford Courant                                                                                   1
Hispanic                                                                                           1
Immigration Reform and Control Act of 1986                                                         1
Innovation economics                                                                               1
JAMA (journal)                                                                                     1
Jesse White (politician)                                                                           1
Magna cum laude                                                                                    1
Medicare Advantage                                                                                 1
Metropolitan Transportation Authority                                                              1
National Association for Business Economics                                                        1
Norwegian Nobel Committee                                                                          1
Of counsel                                                                                         1
Office of Energy Efficiency and Renewable Energy                                                   1
Oslo                                                                                               1
President of the United Nations Security Council                                                   1
Project Vote                                                                                       1
Public-Private Investment Program for Legacy Assets                                                1
Racial profiling                                                                                   1
Resignation from the United States Senate                                                          1
Senior Advisor to the President                                                                    1
Statute of limitations                                                                             1
Stay with It                                                                                       1
Steeler Nation                                                                                     1
Stimulus (economics)                                                                               1
Tax incentive                                                                                      1
United States Senate Committee on Environment and Public Works                                     1
United States Senate Committee on Veterans' Affairs                                                1
United States Senate Foreign Relations Subcommittee on Europe and Regional Security Cooperation    1
Voter registration campaign                                                                        1
West Pullman, Chicago                                                                              1
Name: Out, dtype: int64

Given a page, what are the neighbors that link in to it? Assign a specific article title to the page1 variable by replacing the np.random.choice(degree_df.index)

page1 = np.random.choice(degree_df.index)

in_connections = hyperlink_g.predecessors(page1)
print("The links into node \"{0}\" are:\n{1}".format(page1,in_connections))
The links into node "Grammy Award for Best Spoken Word Album" are:
['Dreams from My Father', 'Barack Obama', 'United States Senate career of Barack Obama', 'The Audacity of Hope', 'Hillary Clinton']
out_connections = hyperlink_g.successors(page1)
print("The links out from node \"{0}\" are:\n{1}".format(page1,out_connections))
The links out from node "Grammy Award for Best Spoken Word Album" are:
['Barack Obama', 'Bill Clinton', 'Grammy Award', 'Hillary Clinton', 'Franklin D. Roosevelt']
in_degree_dist_df = degree_df['In'].value_counts().reset_index()
out_degree_dist_df = degree_df['Out'].value_counts().reset_index()

f,ax = plt.subplots(1,1)
in_degree_dist_df.plot.scatter(x='index',y='In',ax=ax,c='blue',label='In')
out_degree_dist_df.plot.scatter(x='index',y='Out',ax=ax,c='red',label='Out')
ax.set_xscale('symlog')
ax.set_yscale('symlog')
ax.set_xlim((0,1e3))
ax.set_ylim((0,1e3))

ax.set_xlabel('Connections')
ax.set_ylabel('Count')
<matplotlib.text.Text at 0x7f0187cec8d0>

Calculate communities within the network

Define a function to compute node community memberships for multiple community detection algorithms within igraph. The output is a dictionary of dictionaries where the top-level key is the name of the algorithm and returns a second-level dictionary keyed by the the page name with values being the community membership value. Documentation and details about these algorithms can be found under the igraph graph-class documentation.

def comparative_community_detector(igraph):
    memberships = {}
    
    # Directed memberships
    memberships['betweenness'] = igraph.community_edge_betweenness().as_clustering().membership
    memberships['infomap'] = igraph.community_infomap().membership
    memberships['spinglass'] = igraph.community_spinglass().membership
    memberships['walktrap'] = igraph.community_walktrap().as_clustering().membership
    
    # Undirected memberships
    undirected = igraph.as_undirected()
    memberships['fastgreedy'] = undirected.community_fastgreedy().as_clustering().membership
    memberships['leading_eigenvector'] = undirected.community_leading_eigenvector().membership
    memberships['multilevel'] = undirected.community_multilevel().membership
    
    labelled_memberships = {}
    for label,membership in memberships.items():
        labelled_memberships[label] = dict(zip(igraph.vs['id'],membership))
        
    return labelled_memberships

Not included in the comparative_community_detector function are two additional community detection algorithms that are too intensive or are not working properly. They're documented below if you ever care to explore in the future.

# Uses up a ton of memory and crashes kernel immediately ig_hg_optimal_modularity = hyperlink_g.community_optimal_modularity().membership ig_hg_optimal_modularity_labels = dict(zip(ig_hg.vs['id'],ig_hg_optimal_modularity)) pd.Series(ig_hg_optimal_modularity_labels).value_counts().head(10) # Lumps everyone into a single community ig_hg_label_propagation = hyperlink_g.community_label_propagation(initial=range(ig_hg_d.vcount()),fixed=[False]*ig_hg_d.vcount()).membership ig_hg_label_propagation_labels = dict(zip(ig_hg_d.vs['id'],ig_hg_label_propagation)) pd.Series(ig_hg_label_propagation_labels).value_counts().head(10)

Here we need to shift from using the networkx library to using the igraph library. The former is built purely in Python which makes it easier-to-use but somewhat slower while the latter is a "wrapper" that lets us write in Python but does the calculations in much-faster C code behind-the-scenes.

# Load the hyperlink network data from disk into a networkx graph object
nx_hg = nx.read_graphml('hyperlink_{0}.graphml'.format(page_title.replace(' ','_')))

# Load the hyperlink network data from disk into a igraph graph object
ig_hg = ig.read('hyperlink_{0}.graphml'.format(page_title.replace(' ','_')))
ig.summary(ig_hg) # Get statistics about the 
IGRAPH D-W- 530 5644 -- 
+ attr: id (v), weight (e)

Run the function on the igraph version of the hyperlink network.

This may take a minute or more since these are intensive calculations

# Run the community detection labelling on the igraph graph object
comparative_community_labels = comparative_community_detector(ig_hg)

# Convert the node labels into a dict-of-dicts keyed by page name and inner-dict containing community labels
comparative_community_labels_transposed = pd.DataFrame(comparative_community_labels).to_dict('index')

# Update each node in the networkx graph object to reflect the community membership labels
for _node in nx_hg.nodes():
    try:
        nx_hg.node[_node]['label'] = _node
        for (label,membership) in comparative_community_labels_transposed[_node].items():
            nx_hg.node[_node][label] = int(membership)
    except KeyError: # Concerning that some labels aren't present, but skip them for now
        print("Error in assigning \"{0}\" to a community.".format(_node))
        pass

# Write the labeled graph back to disk to visualize in Gephi
nx.write_graphml(nx_hg,'hyperlink_communities_{0}.graphml'.format(page_title.replace(' ','_')))
Error in assigning "Hopkins & Sutter" to a community.