2015-09-04 1 views
0

J'essaye de remplir une feuille de google à partir de données que je suis en train de gratter de wikipedia. (Je traiterai le fichier robots.txt plus tard, j'essaie juste de comprendre comment faire cela conceptuellement.) Mon code est ci-dessous. J'essaye de mettre la page en tant que chaîne, puis lancer une recherche regexp mon but est d'isoler les spécifications sur la page et au moins les stocker comme une valeur, mais j'ai un problème de recherche de la page continue à ne pas trouverEssayer de faire correspondre une expression régulière sur un site Web en utilisant Mechanize et python

Soyez gentil, je suis un noob - Merci d'avance pour votre aide

import mechanize 
import re 
import gspread 


br = mechanize.Browser() 

pagelist=["https://en.wikipedia.org/wiki/Tesla_Model_S"] 

wheelbase = '' 
length ='' 
width= '' 
height ='' 





pages=len(pagelist) 
i=0 



br.open(pagelist[0]) 

page = br.response() 
print page.read() 

pageAsaString = str(page.read()) 



match = re.search('Wheelbase',pageAsaString) 
if match:      
    print 'found', match.group() 
else: 
print 'did not find' 

Répondre

0

Je reçois la page très bien -. la raison pour laquelle vous obtenez un message indiquant que la page n'a pas été trouvé parce que votre bloc print 'did not find' n'est pas correctement en retrait Ce point est important en Python Cumulez le sur 4 espaces:

if match:      
    print 'found', match.group() 
else: 
    print 'did not find' 

Il y a une autre chose. Je ne connais pas Mechanize, mais vous appelez simplement read() sur la page, ce qui l'épuise. Ainsi, quand vous read() la page dans print page.read(), il n'y a plus rien à consommer et attribuer à pageAsaString. Vous avez déjà lu à la fin de la page! Vous voudrez donc lire la page et l'enregistrer dans une variable en premier. Consultez la documentation pour les opérations d'E/S here. Après la réparation de l'indentation et la suppression print page.read(), tout semblait fonctionner très bien.

Depuis que vous démarrez, je recommande fortement de lire Dive Into Python. Bonne chance pour votre projet!

+0

Merci! la page d'impression était-elle lue provoquant un problème de tampon? –

+0

aussi merci pour le recc - lire maintenant! –

+0

Vous êtes les bienvenus. Ce fut un bon début pour moi. Après un peu plus de lecture, Mechanize a l'air d'être un wrapper de fantaisie autour de ['urllib2'] (https://docs.python.org/2/library/urllib2.html). Ainsi, quand il obtient une réponse, il [renvoie un objet semblable à un fichier] (https://docs.python.org/2/library/urllib2.html#urllib2.urlopen). Ainsi, appeler 'read()' l'épuise, un peu comme un fichier sur votre système. Les appels ultérieurs à 'read()' commencent là où le dernier s'est arrêté - à la fin du tampon. :) –