我正在尝试使用 python 自动搜索保守域数据库 (CDD) - http://www.ncbi.nlm.nih.gov/Structure/cdd/wrpsb.cgi,我将内容提交到 HTML 表单。问题是,一旦提交了表单,就会加载一个新页面,说要等待搜索完成,然后在一分钟后用结果刷新页面。所有这些都发生在同一个 URL 上,当我自动提交表单时,我所能检索到的只是作为提交结果的加载页面——而不是最终结果页面。我尝试使用 sleep 等来延迟,但表单提交无论如何都会获得加载回来的第一页。我正在使用 Python requests 模块,但除了检索加载页面的内容之外,我还尝试了 Mechanize,但没有取得太大成功。
import requests
url = "http://www.ncbi.nlm.nih.gov/Structure/cdd/wrpsb.cgi"
payload = {'seqinput':'AATCACTTCAGCACACGAGCTTATATGCTGCTTTATTGGAGAACCGAGTTGTCCTTTATTGTGGATGCAATCCCTTGTATGTGTTATACTTTATGCTAAAGTCATCGACCTTTGCGTAATCGATCGTAAATCCTGGTATAGGGTGTACTTCGGATTGCCCGAGCCTATATTGGGGGTGAACGGATCATAAAGTCACTACCATATTAAATTGTACTAAGTCACGCCCTGAATATCTCAGGTTTTGATTTTATCACATTTTATTTTAAACCCTAGTTAAAGCTTTACAACTTTAAAGTAAGCCGTATCGAAACGTTAATCGATCGCTGATTGCGTAACAATCAATAGTTAGTTTTATTTTTAATTTTCAATATTTATTTTTCAAAAATTTTAGTTAAGATTTTAGCTTGCCTTAAGCAGTCTTTATATCTTCTGTATTTAGTTTTAAAATTTTTAGGAGCTAAGTTCGCTTTGCTCTTTATAGCTATTTTATTTATTTTAGGAATTTTATCACCTCGTAATTATTTATTAATAACGTTAGCTCTATCCGTATACAATGTCTACGATACGTTGCACCAGTTTACCAAAATCGGTGTTGCGCATTCAACAACATTGCAGTAGTTTAGCTGCTGAACCTAGGCTAGTAACATTACCGAATAAAAAGTTTAAAGATTTCGTTAAATCATTTGAACACCTTGATGTGCCTCGACCATTTAATGTTTTAATGGAGTGGTCAGAGGTGTGTGATAATGATTACACGTTAGGATATTGCAAATCTTCTACATTATATGAACAAATGTTTATTTTGAAATATATGTTGGGTTTTAATTTTGAACCGCGTAAGTTGATCATACTCAAAAGACGAATGCAAGAGCGTTTGTTTTTTTTTTATAGAGGTTCCCGGACTATTATACCTTTGAATATGGTTTACCCATTATTTAAAGATACATTGAATAGTATCGGGCATCCAGATCATTTAAAACGACACGGATTCGAATATTTAGACCAAACAGATATACAGAAATTTCCATTTTTAATATTGATGTTTTGTATTAACATTGAACGTGTACCACTTAAGTGTTACAAATACAGTGCTAATATAAACGTTAAGGTTGCTTTGTCTCAATTACCTGTTTTAATGACTGCCCTTGTTAACAAGGAACGGTTAGTAGATCAGTACGATTTTCTAGTAGTATTACAAAATTTTCTACATTTTTTTTTTAGGAATTTAAGTTATACTAATCCAGTAGATTTAATTGAACATAGTTTTCTTAACGATTTAGGTTTGTACTGCGCGAAATTAGTTATGGTCAGACCCATATCTACCACTGAGTACCTACTTGGTGGCGATTGGGATTTGGACAGACCTTGTTTAGCGCCAAAGGAAACATGGGATGTATATTATCGGCTGCAGTCTGTTGCACAATTAGGTGTTGATGTCAACACTAATGTGCAAATGGATCCTGCATTTATACAAGCCTTGGACAAAATTGCCGAAACATTTGGAGAAGCGGTTAACAGCTTGCATTCAGTTGCTGGCGTTGCCGTGGATGGAATCAGGAAGAAATTTGCATGTTACCTATCTATTTGTTATAATTTGTATAGACTAGGTTCTGGTGGTATGTCTCCTCAAGACGTACTTATGAACATAGTTACTACACTTATGCAATCAGATATGCCTGCAAATATTATTCCACAATTGCGAAGTATATTTTTAACATCTACAGCGCAGTCTGCTACTGTTGATGGAATGGTAATTGCAAAGTTATTAGCTTTGTGTTCCTTCTCATTGATGGTCAGCAAGATACCTTCATCCAGAGACATTGATTCATTCATATTACGTCTAGACAGAATACCGCGAGCGTTTTCTGGTTTAGAGAATATGTGGAAACGGTTGGATACCGTGACCAATGAATTGTGGACTTGGATGGAGATTACTGTGTTGAAGCGTGAGAATGTAATTCCGCGTTCTGATATCCTTGATTCTGTTAGTAAGTGGGAAAATGACCTTGAACAGTTGTTGACTCTTCAGAAGCATCGAGAGATTCAATCGAGTCTCGAGACGCAACATGCCGCAGGGAGAATGTATTCCGAAGGGATACGTCTTATGCGTGTGTGTAAAGATCTGAACCTTTCTAAGGGAAACACCGAAATCATCGCCCGAAATTTACCAGCCGCAAAACTTCTGTTAACGGAAGCTAACATGAGTGGTGCGGACAAATCAAAATTACGAACTGAACCTGTCATTGTTTGGTTTTCCGGAGCTTCTGGCAACGGAAAAACTGGATTATCTTACCCGTTCATATTAGATATGATGCGAGTATATGGTGATCCACCGAGCACGTGGCAGCAAAATGTGTATGCAAGAGAGCCTGAGACAGAATATTGGGATGGTTATATAAATCAAGAGTATATTGTCTATGATGACTTTATCCAGATTAAGGATTCACAATTGAAACCTAATCCGGAGTTGTTTGAGATGATACGCTTAGGAAATATGTTTCCGTACCAATGTCATATGGCTTCCTTGCTTGACAAGAACAATACTTTTGCCGAACCGAAATTAATATGTTTAACTTCTAACTTACAACGTTTACAAATTGAATCACTAAACTGCCCCGAAGCTGTATCCCGTCGTATAGATTTTGCTTTTAACGTTAGAATTATTCCAGAATATCAAATGGAATATACTAGCGCTAATGGCGACAAGCTATATAGATTGGATGCTGCGAAGGCAAGACGTGATTTTGGAGACGTTCTTTGTTTTGAAGTATATAGATTTGACATGTTTGATGCCTCTAGTCGCCGTGATATTTTGACGGACCTAACTTACACCGAAATGGTTAAGTTATGTCAAGATAAAATGCGCGACAGAGCTTCGAATTTTACCGACTATGCCAATTTCTTAGAATCGTACAGGAATAAGGGGGTTGCTCAAGTTGAGAAACCCAAACATGAAACTGACGATTATAATGGAGAGACCATGATTTTTACATCTACTGCCCAAGTGCATTTAGAGGACATTACTAATCTAGTAGTGCCACAACCTAGCTATTTTAAGCGTTTATACTGGAATATGTGTAAACAATATTATAGTACAAAGTTGTGGCTTACTGGATCAGATACTAGTGTCTTTGAGATGTTACTTCTCGGTGATAGAGATGGCGCTTATGACAAGTGCCTCGCTATTGTTAGAGAAACTAGATGTGAATTGAACAACATGATTAATAGGGAAGCAGAAGTTATTAAAAGTGTCTTTGGGAATTATTGGCCACTCTTTAAAGCTTGTGCGGGTGCTGCAATTGGTGCGTTTTCGCTTTATTTTATTCTAAGGAAGAAAAGCACACCAGTTACGGCCTTTGTTGCGAGTAATAAAGAGCTAATGGAAACTATGAAGAAAGCAAATGAGTGTTTAGATAATGAGTGTAAGCATTGTAAAAAATGCTTGCATAAAAATGTAGATCTGTGCGTGAAATGGTACACAAAATGCCATTGCTACGCGCTACAGATGGAATCTGCACAAATTAATCTTAAATACTACGCTGCTGCTGCTATGTATCAAGAACCCGAAATGAAAAAAGAACGCGACCGATGCGTAGAATTATTATCAATAATTGATCAATTGTGTAGTTGTGACTGCGCAAATTGTGATGCTTGTTGTGATGATTCTCTCGCTGAAAAGTTTGAAAATGTCATCAAAGTTTATGAGATGCCATGTGTCTGTGTGTGTGCTCGTCTATCACAAGGATTTGATATGATTGAGTTACTAGCACTAATAAAACATTGTGGCACCTTAGAACCAACACCAATTTTGAACCCATATTTACGTAAACTAAGCGTTAAACTATCCGCAGACGTAAGAGATTTCGAAAGAACAGCAGATTATGAACAACTGCTGAACACTCTTCAATCTCAGGAATACGAAGGAGACGTTAAACCGCAGACGATACGTAAAGTAGCAATACGTTACCAATCTCATGATGATGATACCAACATGCGATTGCGTAAAGTGTTGCCTCGCGTTAAATACCAAACAGAAATTACTACAGACGAAACCCGTAGCGTGAGCTCCGCGAAAGAGAGCACCCATATCGACAAAGTGACTAACAATATTATGATAGACGAACAACGAGCTATGCCAGAGATGGATAAATCCGTTGAAACTATAGTAAACCATGTTGTATATCCTAATACAGTATATATGACAGCCAACAAGAATGACGGCAAACAAGCCAACATTGGACACATAATATTTGTGTGCGGCCAAGTTGCCTTGATGCCCTATCATTATAAAGTTGCTATAGAGGAACGAAATTATTCGTCCGTGAATTTATATTCACGTCAATTGATTGGTTCTAAAATACCTGTCTCTGTGTTTGATACATTCGTACGCATCCAAGGAAAAGATGCCATGCTTGTAGCATTCCCAGTTACAGTTAATAGTTTCAAAAATATTGTTAATCATTTTGTGGATATTCAAAACTACCCCCTAGTGCCGTCATGTCCCGGCATACTCGCTAAGTACTATTTTGCTAACTCTGAGACGGAGAAATCTAGAGTTTGCATTAGTGCTATCGGCGTGTCGGAACGTGATGAAGTGGACGTCATGTCTGTCCCTGGATGTATGGAGGTGGTACGCAATAGAGATTTCTACACATACACCGCGCCAACCCGCGCTGGTGATTGTGGTGCAGCTCTTTGCGTTGCCAACACGTGCATACAGGGAAAGATAGTCGGAATACATGTATCCGGCGTAGAAGGGCTATGTAAAGGCAATTCTTCCGCGATAACCAAGCAAATGATAGAAGAATCATTGAAGAAAATGCCGAGCATTGCTCAATACGCATACCCATCCTCTGAACTAACCGTTGAAATGGACGTGTTAGAAGAGAGTGGAGCATTTGTATTACACAAATATTTGCCAGGGGTTTCTATAGGTACAACCATGCAGACTGCCATTAAACGCTCTCCAATTCATGGCGAACTTATAGAATCTCCGAACAAACCAGGACCGCTTGGACCCTTTAAATTTAGAGGGACCATGGTCGATCCGCGTGTGTTACAACGGAAAAAATATGGAAAACCACGTCCGGTTATCAACCAACAAATAGTAGATGATATTAGAGACGGTTTAAAACCTATTTATTATCAATCCCACGAATACGAACCTGAGTACTACAAATATCCATTAACTTTTGATCAAGCAATATTGGGTATAGATGGTGATCCGTTCATTAATTCACTGGATCGTAATACAGCACCTGGCTTCCCCTTTTCTACACGGAGAAATGGAAAGAAAGGAAAAACGTTGTGGTTTGGAGACAGTATGGAATACGACCTTACTGGACCACACGCGATGGCATTACGACAGGAAGTTGAAGAATTGGAATTATCTATACTCAATGGTGTTAGACCTGAAGTTGTATGGACCGATACTTTAAAAGACCAGAAAATACCTGTAGCTAAAGCAAACGCTGGTAAAACACGTTTGTTTTCAGCAGCGCCAATGCATTATGCAATAGCTCTGCGGAAAGTGTGTGCCCCTTTTGTTGCTCATCTATCACGGATGCGTATTAGAAATACGATCTGTGTGGGTGTGAATCCGTTCTCATGCGAATGGAGTGCGATAGCACAAAAATTGTCATCGAAGGGACACCATGTTATAGCTGGAGATTATTCTAATTTTGACGGTTCATTACCTGCTCAACTAGTCTACGCGGCAACTGAAATAATGGCAGACTGGTATGACGTTCATTGGGAATACGTTGAAGCTCACAAGCGTAATATCGTTGGAGGCAATGTATTAGGAAAGCCAGAATTTCTTATGTACTTGCGCCGATTATATTATGAATGTGTACATCATTTACATATTATGAATTTTAAACAAGGTTCGCTTATGTATTATGTTCGCAACGGTATACCCTCTGGATGTCCAGTTACTGCGCCATTAAATTCAATTGTCAACTTAATGGCATTAATCTATTGTTGGTATCATATAATAGATGATCCACTCAAGCAAAATGTTAAAGAGTTTTTTGAACACACCTCGAGTGTTTTTTATGGAGACGACTTCGTAATGAACATCCGAGCAGATGTATTGGAGAGATTCAATCAGATAACGATAACACAAGCTATGAGTGAACATTTAGATATGACTATGACAGATGAAGCCAAAACGGGTGAGTGTATTAAATCTAGGACACTAAAGGAAGTTAACTTTCTCAAACGTGCTTTTTATTATAATACGCTTATCCAAGAGTACACCGCACCGTTGGACCTCACGGTTATTTTAGATTCTACGAATTGGTATAAAATCGGTAAAAGTTCTGCTATAATAGTGGCGCGTGATACGCTCAAAGCGTGTTTACGTGAATTAGCTTTACACCCGGAACATGTCGATTTACAATATCGTAATAAAATAACAGATCTAGGTCTTCGCGTTACTAATTTAATTCCAGGAGAGTTATTTGTGCCTGATACAAGGTACTCGACGCTTCTTGCTATTAAGAATATGGAATGTGAAAATTTAGGTTTGGACTGTGACACTTAAGATAGTCTAATTAGAAAACCACGTAATTGGGTCAATCCGTTAATACCGGTCTACCAAGCCCTGGAAATTTCTAGTAATCTAATAAGTGCAACACCGCATCTACTCTAAAATCGATATTTGATATCATTAGTCTAATTAACAAACCACGCAACTATGTCAATCCGTTAATACCGGTCCAATAGGCCCTGGAAATTAGTAGTAATTATTATTATACGTCAACCCTGCTCATTGGTTTAATTGAGCACTTATGTTGCTATGTGATCTTGCATAATAAATGCTGACGTGAAAACGTTATGCACTGCTGTAGCAATAGGTTAGCTATTTAGCTTTACTAATCAAGACGCCATCGTGCAGCCCACAAAAGTCTAGATACGTCACAGAAGCACATACGCTAGGTCGCGTTGATGCTTCTCATACATGACCTGCAAATATAAATGAAAACGTAACAACCAAAACACAACAACAAATCCTATCTTTCAGCTCCGAAGGTGAAGCCCCGTCGTCGTCTACCGTTTTAGCCCCGCTCAAATTGCAAAATCCAATTCTGGATTGTGCAAGGGATGGAAAGACTCATACAGTCAATTCATTCCTTGAACGGCCTATTAACTTTAGAACGGCTACGTGGAGTAATCAAGCTGTTGGAAGTAGGTTATTTTCTTTTAACTATCCTTCGGATGTGGTAAAGAATCCAATGTATAGTAGAAAATTACAAAATTTTCTTGGTTTGCGAGCTGATTTAGTTGTTCGCGTTCAAGTCAACGCACAACCATTTCATGCTGGTAGACTAATGCTATCATGGACCCCTTTTCTTAATTCGTTGGGTGCTAGTAGAAAATATTACTATACCAATCCTACATCGCCGTTTTTAACCTGTATTAGTGGTAATCCTCGTGTTGAAATAGATCTATCTACTACAACTGAAGCTACCATGACTATACCTTTCGTGTCTCCTTTCCTATACTATAATCTGGTGACGGGAACTGGCGATATTGGAACTTTCCAATTAATCGTCTATTCTCCGTTAGTAGATTTGGTATCTGGAGGGAACATAGACTACACAGTATGGGTTAATATGACTAATGTACGTACCGAATTTCCTACTGGTATGCCAACTTCTACCGCGCAAGTGGGGGAAGAGGGTAAACAACAACAGAAGCAAGGTTTTGTCACACGCCAGGCCGAGGCTTATTCTACTATTATGGAACCACTCACTAAGATACCAGGAGTAGGCCAATTAATAGGATATGCCAAGTCGGGCGTTGACGCTTTGCATGCTGTTGCTGCGACCCACGGTTGGTCAAAACCACTTAATCCTGCGGACATGCAATTATTCAAGCAAGCACCATCTCGGTTTATGTGTAATTCTGATGGTTCGGATATGGCAACTAATTTGGGCTTAACAAGCCAAAATGAAATTGAGCATCTCCAATCGTTGTTTCGCACAGATTCTGATGAAATGTCTGTAGATTACGTGGCTAGAACATATAACTATGTAGGAAGATTTGACTGGAAGAAGGGAGATAGTCCAGGTACTATTCTTTATAATCAAGTTGTTTCACCTACAGCTTGGTTCTCTAGGATTGGTATTACTGGATTGTCTATTCCTCATTTATATTTTGCCGCTTCAAACTTCGTGTTATGGCGCGGTGGTATAAATGTAAAACTAAAATTCGTCAAAACAAAATTCCACTCAGGTCGTATACGTATTATATACGTACCCGGCTTTTTCGGTGGGGTTTTACCCGTTGGATTTGAAACTGACGCTAACTATTCTACTGTGGTAGATATTAGATCTGACACAGATGTAGAATTTAACGTCCCTTACGTGGCCACTGTGCCTTGGTTGCATATCAATTCCACTCCATGGGTTACTAATTTTAACCAAACTCATGCTTGTGGATCGATTGTAGTCGAGGTTCTCAATGAACTCGTAAATACATCTACTGTATCTGATACTATCGAAGTTATTGTTGAAGTGTGTGCTGCAGAGGATATCGAATTCGCTATCCCTATAGTACCCGCTTTAGCACTTCGTGCGCCACCTAATAACGCAAGTAATAAGGGTGTTTTGGACATTATTACAAGCATGGCACAGGTAGGAACAGATACAGGTGATACACCATCAGAGGTAGCTCGTGAAGAACCAACAACTTTTAACGAGGTGCCGTTACAACCAACTACGACAACATATAACGCATCTATGCTGATGATGGGTGAGAAAGTTACTAGCTTTAGACAGCTTATAAAGCGGTTTTCTGCTATAACACCACCCACGCAGAATAGATATTGGGAATTCAAACAACCTTTTTGGATTAATCCAAATAGGTTCGAAGGAATAACAAGTGAGGGTACGTATGATATCGACGGTATCTCATGGTTCGCAAGCTTATATGCATTCTATCGAGGTAGTATGAGATATAAGATCGCGCCTATCAGTAATACTTCACCCCTTGTTGTAGCCCTTAAACCCAACTCCTTATATGCCGGTATTCGAACTATCGACATAAACGGTACTTGGGAATATCCCGACTACAAGGGTGCAGAAGTATTTATGACACCGAATGAAGGAATACATGAGTTGAGCATTCCATACTATAGTTCCTATCCCGTAACTTTAACTACGTATAACACTAGTGGTTCTGACGTACTTGATGCTAGAAACGGTTTTAATCGTGTTATAGCTCGGTTTCATCAGGACACTAATGCTTACGTATATAGGGCGGCGGGAGATGACTTTAGTTTTGGATTCCTCCTCGGACCTCCTATAGTGAACCACGCATCCCCACAGCGTTCGTCTGGTACGCGTTAGTTACCATCAAGTTTATAGTCTTGTTAAAACTATACGTCTGATATGCGTTAATTATCAAGTGAGTAGCTATCTCGAATTAAAATAGCCGTCCAGTGGAACGTATCTACTTGACTTACAAACCAATACGAAGGATAAGAGTATTCGTCGCATTTGATTTTAGCGTCGCTAGGCCTAGTTTGTAAGTTAATCTAATTATTATTAAGGACCAAAAAAATATAAAATACAAAATACAAAAATATTTAGCATTAGTTAATTTTAGGAAATAATTTTAGATAAGCCTGGCGCGCCAAAATTGGAGTTTAAAGACCCTATAAAAATGCTGGCGTTATACACCCCTTGTTCCTTCGAGGCGGGCCCTCATGTGTTCCACATGCAGACTTAAAGAAGTCTACCCCTGGCCCGTCCGGGGGATCTAAGTTTTTATCAGTTTTCTTAGACTCAGCTATTAGCTGAGAGGCGTAACTGTTACTTTATGTCTGGCGAACATGAGAGGTGCTGTAATGTCATTTTTCGTCAAAAAAAAA'}
r = requests.post(url, payload)
print r.content
是否可以刷新从 Python 中的页面提交返回的数据?
编辑非常感谢 sberry 的建议,我检查了加载页面,发现了这个隐藏的表单。第一个加载页面在刷新前等待 3 秒,然后第二个加载页面等待 8 秒,第三个等待 13 秒,所以看起来我将不得不发布并检查几次结果。现在我只需要弄清楚如何做到这一点。
<div id="display">Please wait while your data is being prepared...<br>RID = VGCR81NG014</div>
<div id="counter">Page is refreshing in <span id="seconds">8</span> seconds</div>
</div>
<form id=_refresh action=http://www.ncbi.nlm.nih.gov/Structure/cdd/wrpsb.cgi method=POST target="_self"> <!-- the form to submit for refresh or redirection -->
<input name="dhandle" type="hidden" value="QM3-data_cache-22B43E7AD59D887C-51B832F442D7"><input name="output" type="hidden" value="html"><input name="wait4blast" type="hidden" value="10"><input name="mode" type="hidden" value="rep"><input name="data" type="hidden" value="ftable"><input name="gwidth" type="hidden" value="-1"><input name="loading" type="hidden" value="true">
</form>