2016-11-11 14 views
2

我想通过以下网页浏览导航:使用要求通过多页

http://www.regulomedb.org/

从本质上讲,我在文本框中输入我的数据,然后点击提交。提交后,我想下载可用的文件。

截至目前,我有:

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

当我看的RESP的内容,我能够进入以下页面的HTML文本。但是,我需要做的是下载文件。我不确定在提交后如何导航它。棘手的部分是我需要通过第一页提交数据。然后到达第二页后,我需要以某种方式导航到下载链接,但我不确定如何使用已经生成的响应对象来做到这一点。

回答

1

我在Chrome中使用“检查”到发现它实际上是两个电话。搜索调用返回一个名为'sid'的键,然后用它下载正确的文件。以下工作只是测试你给的一个例子:

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

这正是我所需要的。谢谢。我认为我需要打开一个会话并从那里开始。 – NymphicusHollandicus