2011-04-07 5 views
1

Je suis en train d'écrire le script qui recherche un inchikey (ex: OBSSCZVQJAGPOE-KMKNQKDISA-N) pour obtenir une structure chimique de ce site: http://www.chemspider.com/inchi-resolver/Resolver.aspxréponse POST Python

De la documentation mon code ressemble comme il se doit fonctionne, mais à la place, il renvoie simplement la page de recherche originale.

Merci pour l'aide,

import urllib 

inchi = 'OBSSCZVQJAGPOE-KMKNQKDISA-N' 

url = 'http://www.chemspider.com/inchi-resolver/Resolver.aspx' 

data = urllib.urlencode({'"ctl00$ContentPlaceHolder1$TextBox1"':inchi}) 

response = urllib.urlopen(url, data) 

print response.read() 

Répondre

3

Votre code effectue une requête GET et non une requête POST. En dehors de cela: le formulaire contient divers champs cachés avec des valeurs étranges qui pourraient être nécessaires pour le traitement.

+3

Ce qu'il a dit. De plus, pour éviter de faire tout le travail vous-même, vous pouvez utiliser Mechanize (http://www.recherche.sourceforge.net/mechanize/). –

+2

Par défaut, si vous transmettez des données à 'urlopen()', il effectuera un POST par rapport à un GET. Le vrai problème est les champs cachés manquants. – jathanism