2016-11-11 8 views
2

ich durch die folgende Webseite zu navigieren versuchen:Anfragen Verwendung durch mehrere Seiten zu navigieren

http://www.regulomedb.org/

Im Grunde gebe ich meine Daten in dem Textfeld ein und klicken Sie dann auf senden. Nach dem Senden möchte ich die Datei herunterladen, die verfügbar wird.

Ab jetzt habe ich:

data = {'data': 'rs7881236'} 
resp = requests.post('http://www.regulomedb.org/results', data) 

Wenn ich den Inhalt für bzw. schauen, kann ich den HTML-Text der folgenden Seite zu gelangen. Was ich jedoch tun muss, ist die Datei herunterladen. Ich bin mir nicht sicher, wie ich nach meiner Einreichung darauf zugehen soll. Der schwierige Teil ist, dass ich meine Daten über die erste Seite einreichen muss. Nachdem ich die zweite Seite erreicht habe, muss ich irgendwie zum Download-Link navigieren, aber ich bin unsicher, wie ich das mit einem bereits generierten Antwortobjekt machen soll.

Antwort

1

habe ich ‚inspizieren‘ in Chrom machen finde heraus, dass es eigentlich zwei Anrufe sind. Der Suchaufruf gibt eine Art Schlüssel mit dem Namen 'sid' zurück, der dann zum Herunterladen der korrekten Dateien verwendet wird. Das folgende funktionierte für mich, indem ich nur das eine Beispiel teste, das Sie geben:

import requests 
import re 

query = 'rs7881236' 
d_format = 'full' #optionas are 'full', 'gff', or 'bed' 


query_payload = {'data': query} 
r = requests.post('http://www.regulomedb.org/results', query_payload) 
val = re.findall('name="sid" value="(.*?)"', r.text) 

file_payload = {'format':d_format,'sid':val} 
f = requests.post('http://www.regulomedb.org/download', file_payload) 
print(f.text) 
+0

Das ist genau was ich brauchte. Vielen Dank. Ich nahm an, ich müsste eine Sitzung eröffnen und von dort aus gehen. – NymphicusHollandicus

Verwandte Themen