In [2]: import requests ...: import io ...: from pdfminer.high_level import extract_text ...: In [3]: In [3]: valid = 0 ...: invalid = 0 ...: for i in range(20): ...: random = requests.get('https://es.wikipedia.org/api/rest_v1/page/random/title') ...: title = random.json()['items'][0]['title'] ...: print('Random page title: {}'.format(title)) ...: pdf = requests.get('https://es.wikipedia.org/api/rest_v1/page/pdf/{}'.format(title)) ...: file = io.BytesIO(pdf.content) ...: try: ...: extract_text(file) ...: valid += 1 ...: print('Valid pdf: {}'.format(title)) ...: except: ...: invalid += 1 ...: print('Invalid pdf: {}'.format(title)) ...: Random page title: Paracas Invalid pdf: Paracas Random page title: Abadía_de_Saint-Sever Valid pdf: Abadía_de_Saint-Sever Random page title: Garganta_del_Villar Valid pdf: Garganta_del_Villar Random page title: Marco_Enríquez-Ominami Invalid pdf: Marco_Enríquez-Ominami Random page title: Emile_Griffith Valid pdf: Emile_Griffith Random page title: Antonio_de_Ulloa Invalid pdf: Antonio_de_Ulloa Random page title: Antares Invalid pdf: Antares Random page title: Sandy_Casar Valid pdf: Sandy_Casar Random page title: Olivia_Lewis Valid pdf: Olivia_Lewis Random page title: Robin_Hood Invalid pdf: Robin_Hood Random page title: Cueva_Cardiel Valid pdf: Cueva_Cardiel Random page title: Hylomecon Invalid pdf: Hylomecon Random page title: Riendas Valid pdf: Riendas Random page title: Charles_Baudelaire Invalid pdf: Charles_Baudelaire Random page title: Real_Audiencia_de_Santafé_de_Bogotá Valid pdf: Real_Audiencia_de_Santafé_de_Bogotá Random page title: Beocia_(región_histórica) Valid pdf: Beocia_(región_histórica) Random page title: Saint-Ouen_(Somme) Valid pdf: Saint-Ouen_(Somme) Random page title: BDZ_(álbum) Invalid pdf: BDZ_(álbum) Random page title: Felipe_França_Silva Valid pdf: Felipe_França_Silva Random page title: Bloque_del_Este Invalid pdf: Bloque_del_Este In [4]: valid Out[4]: 11 In [5]: invalid Out[5]: 9