从Python向网站发送请求有什么建议吗?
使用此功能,我想打开“”,请求ID为Q4PRD1和Q7LZ61的蛋白质序列对齐,然后在我的浏览器中打开网站 起初,它似乎工作良好-运行脚本将打开网站,并显示正在运行的对齐作业。然而,即使我刷新了页面,它也会一直持续下去,永远不会真正完成。如果我在浏览器中输入ID并点击“对齐”,它工作正常,大约需要8秒来对齐 我不熟悉直接从浏览器运行和从Python运行之间的区别。你们有谁知道可能会出什么问题吗 谢谢:-)从Python向网站发送请求有什么建议吗?,python,html,css,urllib2,bioinformatics,Python,Html,Css,Urllib2,Bioinformatics,使用此功能,我想打开“”,请求ID为Q4PRD1和Q7LZ61的蛋白质序列对齐,然后在我的浏览器中打开网站 起初,它似乎工作良好-运行脚本将打开网站,并显示正在运行的对齐作业。然而,即使我刷新了页面,它也会一直持续下去,永远不会真正完成。如果我在浏览器中输入ID并点击“对齐”,它工作正常,大约需要8秒来对齐 我不熟悉直接从浏览器运行和从Python运行之间的区别。你们有谁知道可能会出什么问题吗 谢谢:-) ~Max我想这是用javascript编写的。如果查看按钮Align的html代码,您可以
~Max我想这是用javascript编写的。如果查看按钮
Align
的html代码,您可以看到
def align_sequences(IDs):
import webbrowser
import urllib,urllib2
url = 'http://www.uniprot.org/align/'
params = {'query':IDs}
data = urllib.urlencode(params)
request = urllib2.Request(url, data)
response = urllib2.urlopen(request)
job_url = response.geturl()
webbrowser.open(job_url)
align_sequences('Q4PRD1 Q7LZ61')
UniProt.analytics()
和submitAlignForm()
一些javascript魔术。这是js compr.js2013_11
文件中的魔法
您可以使用python查看此文件,然后在python上执行Java脚本所做的操作。您必须单击
align
按钮。但是,您不能使用webbrowser
执行此操作。一种选择是使用:
onclick="UniProt.analytics('AlignmentSubmissionPage', 'click', 'Submit align'); submitAlignForm();"
from selenium import webdriver
url = 'http://www.uniprot.org/align/'
ids = 'Q4PRD1 Q7LZ61'
driver = webdriver.Firefox()
driver.get(url)
q = driver.find_element_by_id('alignQuery')
q.send_keys(ids)
btn = driver.find_element_by_id("sequence-align-submit")
btn.click()