Created
October 23, 2010 11:40
-
-
Save willcannings/642117 to your computer and use it in GitHub Desktop.
A list of international country dialing codes extracted from Wikipedia into an HTML select. The ruby file produces this list by scraping the 'List of country calling codes' Wikipedia page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<select> | |
<option value='7840'>Abkhazia (+7 840)</option> | |
<option value='7940'>Abkhazia (+7 940)</option> | |
<option value='99544'>Abkhazia (+995 44)</option> | |
<option value='93'>Afghanistan (+93)</option> | |
<option value='355'>Albania (+355)</option> | |
<option value='213'>Algeria (+213)</option> | |
<option value='1684'>American Samoa (+1 684)</option> | |
<option value='857'>ANAC Satellite (+857)</option> | |
<option value='858'>ANAC Satellite (+858)</option> | |
<option value='376'>Andorra (+376)</option> | |
<option value='244'>Angola (+244)</option> | |
<option value='1264'>Anguilla (+1 264)</option> | |
<option value='1268'>Antigua and Barbuda (+1 268)</option> | |
<option value='54'>Argentina (+54)</option> | |
<option value='374'>Armenia (+374)</option> | |
<option value='297'>Aruba (+297)</option> | |
<option value='247'>Ascension (+247)</option> | |
<option value='61'>Australia (+61)</option> | |
<option value='672'>Australian External Territories (+672)</option> | |
<option value='43'>Austria (+43)</option> | |
<option value='994'>Azerbaijan (+994)</option> | |
<option value='1242'>Bahamas (+1 242)</option> | |
<option value='973'>Bahrain (+973)</option> | |
<option value='880'>Bangladesh (+880)</option> | |
<option value='1246'>Barbados (+1 246)</option> | |
<option value='1268'>Barbuda (+1 268)</option> | |
<option value='375'>Belarus (+375)</option> | |
<option value='32'>Belgium (+32)</option> | |
<option value='501'>Belize (+501)</option> | |
<option value='229'>Benin (+229)</option> | |
<option value='1441'>Bermuda (+1 441)</option> | |
<option value='975'>Bhutan (+975)</option> | |
<option value='591'>Bolivia (+591)</option> | |
<option value='387'>Bosnia and Herzegovina (+387)</option> | |
<option value='267'>Botswana (+267)</option> | |
<option value='55'>Brazil (+55)</option> | |
<option value='246'>British Indian Ocean Territory (+246)</option> | |
<option value='1284'>British Virgin Islands (+1 284)</option> | |
<option value='673'>Brunei (+673)</option> | |
<option value='359'>Bulgaria (+359)</option> | |
<option value='226'>Burkina Faso (+226)</option> | |
<option value='257'>Burundi (+257)</option> | |
<option value='855'>Cambodia (+855)</option> | |
<option value='237'>Cameroon (+237)</option> | |
<option value='1'>Canada (+1)</option> | |
<option value='238'>Cape Verde (+238)</option> | |
<option value='1345'>Cayman Islands (+1 345)</option> | |
<option value='236'>Central African Republic (+236)</option> | |
<option value='235'>Chad (+235)</option> | |
<option value='64'>Chatham Island (New Zealand) (+64)</option> | |
<option value='56'>Chile (+56)</option> | |
<option value='86'>China (+86)</option> | |
<option value='61'>Christmas Island (+61)</option> | |
<option value='61'>Cocos-Keeling Islands (+61)</option> | |
<option value='57'>Colombia (+57)</option> | |
<option value='269'>Comoros (+269)</option> | |
<option value='242'>Congo (+242)</option> | |
<option value='242'>Congo - Brazzaville (+242)</option> | |
<option value='243'>Congo, Dem. Rep. of (Zaire) (+243)</option> | |
<option value='243'>Congo - Kinshasa (+243)</option> | |
<option value='682'>Cook Islands (+682)</option> | |
<option value='506'>Costa Rica (+506)</option> | |
<option value='225'>Ivory Coast (+225)</option> | |
<option value='385'>Croatia (+385)</option> | |
<option value='53'>Cuba (+53)</option> | |
<option value='5399'>Cuba (Guantanamo Bay) (+5399)</option> | |
<option value='599'>Curaçao (+599)</option> | |
<option value='357'>Cyprus (+357)</option> | |
<option value='420'>Czech Republic (+420)</option> | |
<option value='45'>Denmark (+45)</option> | |
<option value='246'>Diego Garcia (+246)</option> | |
<option value='253'>Djibouti (+253)</option> | |
<option value='1767'>Dominica (+1 767)</option> | |
<option value='1809'>Dominican Republic (+1 809)</option> | |
<option value='1829'>Dominican Republic (+1 829)</option> | |
<option value='1849'>Dominican Republic (+1 849)</option> | |
<option value='670'>East Timor (+670)</option> | |
<option value='56'>Easter Island (+56)</option> | |
<option value='593'>Ecuador (+593)</option> | |
<option value='20'>Egypt (+20)</option> | |
<option value='503'>El Salvador (+503)</option> | |
<option value='8812'>Ellipso (Mobile Satellite service) (+8812)</option> | |
<option value='8813'>Ellipso (Mobile Satellite service) (+8813)</option> | |
<option value='88213'>EMSAT (Mobile Satellite service) (+88213)</option> | |
<option value='240'>Equatorial Guinea (+240)</option> | |
<option value='291'>Eritrea (+291)</option> | |
<option value='372'>Estonia (+372)</option> | |
<option value='251'>Ethiopia (+251)</option> | |
<option value='500'>Falkland Islands (+500)</option> | |
<option value='298'>Faroe Islands (+298)</option> | |
<option value='679'>Fiji (+679)</option> | |
<option value='358'>Finland (+358)</option> | |
<option value='33'>France (+33)</option> | |
<option value='596'>French Antilles (+596)</option> | |
<option value='594'>French Guiana (+594)</option> | |
<option value='689'>French Polynesia (+689)</option> | |
<option value='241'>Gabon (+241)</option> | |
<option value='220'>Gambia (+220)</option> | |
<option value='995'>Georgia (+995)</option> | |
<option value='49'>Germany (+49)</option> | |
<option value='233'>Ghana (+233)</option> | |
<option value='350'>Gibraltar (+350)</option> | |
<option value='881'>Global Mobile Satellite System (GMSS) (+881)</option> | |
<option value='8818'>Globalstar (Mobile Satellite Service) (+8818)</option> | |
<option value='8819'>Globalstar (Mobile Satellite Service) (+8819)</option> | |
<option value='30'>Greece (+30)</option> | |
<option value='299'>Greenland (+299)</option> | |
<option value='1473'>Grenada (+1 473)</option> | |
<option value='590'>Guadeloupe (+590)</option> | |
<option value='1671'>Guam (+1 671)</option> | |
<option value='502'>Guatemala (+502)</option> | |
<option value='224'>Guinea (+224)</option> | |
<option value='245'>Guinea-Bissau (+245)</option> | |
<option value='592'>Guyana (+592)</option> | |
<option value='509'>Haiti (+509)</option> | |
<option value='504'>Honduras (+504)</option> | |
<option value='852'>Hong Kong (+852)</option> | |
<option value='36'>Hungary (+36)</option> | |
<option value='354'>Iceland (+354)</option> | |
<option value='8810'>ICO Global (Mobile Satellite Service) (+8810)</option> | |
<option value='8811'>ICO Global (Mobile Satellite Service) (+8811)</option> | |
<option value='91'>India (+91)</option> | |
<option value='62'>Indonesia (+62)</option> | |
<option value='870'>Inmarsat SNAC (+870)</option> | |
<option value='800'>International Freephone Service (+800)</option> | |
<option value='808'>International Shared Cost Service (ISCS) (+808)</option> | |
<option value='98'>Iran (+98)</option> | |
<option value='964'>Iraq (+964)</option> | |
<option value='353'>Ireland (+353)</option> | |
<option value='8816'>Iridium (Mobile Satellite service) (+8816)</option> | |
<option value='8817'>Iridium (Mobile Satellite service) (+8817)</option> | |
<option value='972'>Israel (+972)</option> | |
<option value='39'>Italy (+39)</option> | |
<option value='1876'>Jamaica (+1 876)</option> | |
<option value='81'>Japan (+81)</option> | |
<option value='962'>Jordan (+962)</option> | |
<option value='76'>Kazakhstan (+7 6)</option> | |
<option value='77'>Kazakhstan (+7 7)</option> | |
<option value='254'>Kenya (+254)</option> | |
<option value='686'>Kiribati (+686)</option> | |
<option value='850'>North Korea (+850)</option> | |
<option value='82'>South Korea (+82)</option> | |
<option value='965'>Kuwait (+965)</option> | |
<option value='996'>Kyrgyzstan (+996)</option> | |
<option value='856'>Laos (+856)</option> | |
<option value='371'>Latvia (+371)</option> | |
<option value='961'>Lebanon (+961)</option> | |
<option value='266'>Lesotho (+266)</option> | |
<option value='231'>Liberia (+231)</option> | |
<option value='218'>Libya (+218)</option> | |
<option value='423'>Liechtenstein (+423)</option> | |
<option value='370'>Lithuania (+370)</option> | |
<option value='352'>Luxembourg (+352)</option> | |
<option value='853'>Macau SAR China (+853)</option> | |
<option value='389'>Macedonia (+389)</option> | |
<option value='261'>Madagascar (+261)</option> | |
<option value='265'>Malawi (+265)</option> | |
<option value='60'>Malaysia (+60)</option> | |
<option value='960'>Maldives (+960)</option> | |
<option value='223'>Mali (+223)</option> | |
<option value='356'>Malta (+356)</option> | |
<option value='692'>Marshall Islands (+692)</option> | |
<option value='596'>Martinique (+596)</option> | |
<option value='222'>Mauritania (+222)</option> | |
<option value='230'>Mauritius (+230)</option> | |
<option value='262'>Mayotte (+262)</option> | |
<option value='52'>Mexico (+52)</option> | |
<option value='691'>Micronesia (+691)</option> | |
<option value='1808'>Midway Island (+1 808)</option> | |
<option value='373'>Moldova (+373)</option> | |
<option value='377'>Monaco (+377)</option> | |
<option value='976'>Mongolia (+976)</option> | |
<option value='382'>Montenegro (+382)</option> | |
<option value='1664'>Montserrat (+1 664)</option> | |
<option value='212'>Morocco (+212)</option> | |
<option value='258'>Mozambique (+258)</option> | |
<option value='95'>Myanmar (+95)</option> | |
<option value='264'>Namibia (+264)</option> | |
<option value='674'>Nauru (+674)</option> | |
<option value='977'>Nepal (+977)</option> | |
<option value='31'>Netherlands (+31)</option> | |
<option value='599'>Netherlands Antilles (+599)</option> | |
<option value='1869'>Nevis (+1 869)</option> | |
<option value='687'>New Caledonia (+687)</option> | |
<option value='64'>New Zealand (+64)</option> | |
<option value='505'>Nicaragua (+505)</option> | |
<option value='227'>Niger (+227)</option> | |
<option value='234'>Nigeria (+234)</option> | |
<option value='683'>Niue (+683)</option> | |
<option value='672'>Norfolk Island (+672)</option> | |
<option value='1670'>Northern Mariana Islands (+1 670)</option> | |
<option value='47'>Norway (+47)</option> | |
<option value='968'>Oman (+968)</option> | |
<option value='92'>Pakistan (+92)</option> | |
<option value='680'>Palau (+680)</option> | |
<option value='970'>Palestinian territories (+970)</option> | |
<option value='507'>Panama (+507)</option> | |
<option value='675'>Papua New Guinea (+675)</option> | |
<option value='595'>Paraguay (+595)</option> | |
<option value='51'>Peru (+51)</option> | |
<option value='63'>Philippines (+63)</option> | |
<option value='48'>Poland (+48)</option> | |
<option value='351'>Portugal (+351)</option> | |
<option value='1787'>Puerto Rico (+1 787)</option> | |
<option value='1939'>Puerto Rico (+1 939)</option> | |
<option value='974'>Qatar (+974)</option> | |
<option value='262'>Réunion (+262)</option> | |
<option value='40'>Romania (+40)</option> | |
<option value='7'>Russia (+7)</option> | |
<option value='250'>Rwanda (+250)</option> | |
<option value='590'>Saint Barthélemy (+590)</option> | |
<option value='290'>Saint Helena (+290)</option> | |
<option value='1869'>Saint Kitts and Nevis (+1 869)</option> | |
<option value='1758'>Saint Lucia (+1 758)</option> | |
<option value='590'>Saint Martin (+590)</option> | |
<option value='508'>Saint Pierre and Miquelon (+508)</option> | |
<option value='1784'>Saint Vincent and the Grenadines (+1 784)</option> | |
<option value='685'>Samoa (+685)</option> | |
<option value='378'>San Marino (+378)</option> | |
<option value='239'>São Tomé and Príncipe (+239)</option> | |
<option value='966'>Saudi Arabia (+966)</option> | |
<option value='221'>Senegal (+221)</option> | |
<option value='381'>Serbia (+381)</option> | |
<option value='248'>Seychelles (+248)</option> | |
<option value='232'>Sierra Leone (+232)</option> | |
<option value='65'>Singapore (+65)</option> | |
<option value='599'>Sint Maarten (+599)</option> | |
<option value='421'>Slovakia (+421)</option> | |
<option value='386'>Slovenia (+386)</option> | |
<option value='677'>Solomon Islands (+677)</option> | |
<option value='252'>Somalia (+252)</option> | |
<option value='27'>South Africa (+27)</option> | |
<option value='500'>South Georgia and the South Sandwich Islands (+500)</option> | |
<option value='34'>Spain (+34)</option> | |
<option value='94'>Sri Lanka (+94)</option> | |
<option value='249'>Sudan (+249)</option> | |
<option value='597'>Suriname (+597)</option> | |
<option value='268'>Swaziland (+268)</option> | |
<option value='46'>Sweden (+46)</option> | |
<option value='41'>Switzerland (+41)</option> | |
<option value='963'>Syria (+963)</option> | |
<option value='886'>Taiwan, China (+886)</option> | |
<option value='992'>Tajikistan (+992)</option> | |
<option value='255'>Tanzania (+255)</option> | |
<option value='66'>Thailand (+66)</option> | |
<option value='88216'>Thuraya (Mobile Satellite service) (+88216)</option> | |
<option value='228'>Togo (+228)</option> | |
<option value='690'>Tokelau (+690)</option> | |
<option value='676'>Tonga (+676)</option> | |
<option value='1868'>Trinidad and Tobago (+1 868)</option> | |
<option value='216'>Tunisia (+216)</option> | |
<option value='90'>Turkey (+90)</option> | |
<option value='993'>Turkmenistan (+993)</option> | |
<option value='1649'>Turks and Caicos Islands (+1 649)</option> | |
<option value='688'>Tuvalu (+688)</option> | |
<option value='256'>Uganda (+256)</option> | |
<option value='380'>Ukraine (+380)</option> | |
<option value='971'>United Arab Emirates (+971)</option> | |
<option value='44'>United Kingdom (+44)</option> | |
<option value='1'>United States (+1)</option> | |
<option value='878'>Universal Personal Telecommunications (UPT) (+878)</option> | |
<option value='598'>Uruguay (+598)</option> | |
<option value='1340'>U.S. Virgin Islands (+1 340)</option> | |
<option value='998'>Uzbekistan (+998)</option> | |
<option value='678'>Vanuatu (+678)</option> | |
<option value='39066'>Vatican (+39 066)</option> | |
<option value='379'>Vatican (+379)</option> | |
<option value='58'>Venezuela (+58)</option> | |
<option value='84'>Vietnam (+84)</option> | |
<option value='1808'>Wake Island (+1 808)</option> | |
<option value='681'>Wallis and Futuna (+681)</option> | |
<option value='967'>Yemen (+967)</option> | |
<option value='260'>Zambia (+260)</option> | |
<option value='255'>Zanzibar (+255)</option> | |
<option value='263'>Zimbabwe (+263)</option> | |
</select> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
require 'nokogiri' | |
require 'open-uri' | |
# read the wikipedia table | |
doc = Nokogiri::HTML(open('http://en.wikipedia.org/wiki/List_of_country_calling_codes')) | |
table = doc.xpath("//h3/span[@id='Complete_listing']/parent::h3/following-sibling::table").first | |
# iterate over every td, td pair (country name and dial codes) | |
puts "<select>" | |
table.xpath("tr/td").each_slice(2) do |country, dial_codes| | |
country_name = country.xpath("text()").text | |
dial_codes.xpath("a/text()").each do |dial_code| | |
dial_code_text = dial_code.text | |
dial_code_nums = dial_code_text.gsub(/\D+/, '') | |
puts "<option value='#{dial_code_nums}'>#{country_name} (#{dial_code_text})</option>" | |
end | |
end | |
puts "</select>" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment