当有加载pag时用Python检索HTML表单提交

2024-09-29 22:24:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用python自动搜索conservateddomaindatabase(CDD)-http://www.ncbi.nlm.nih.gov/Structure/cdd/wrpsb.cgi,在这里我将内容提交到HTML表单。问题是,一旦表单被提交,一个新的页面就会加载,并在一分钟后用结果刷新页面,等待搜索完成。所有这些都发生在同一个URL上,当我自动提交表单时,我只能检索作为提交结果的加载页面,而不是最终结果页面。我尝试过使用sleep etc来延迟,但是表单提交无论如何都会返回第一个页面。我使用的是Python请求模块,但是除了检索加载页面的内容外,我还尝试了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秒,所以看起来我要发布并检查几次结果。现在我只想知道怎么做。在

^{pr2}$

Tags: httpurl表单内容wwwncbinlm页面
1条回答
网友
1楼 · 发布于 2024-09-29 22:24:44
import time
import webbrowser

import requests
import lxml.html


session = requests.session()
url = "http://www.ncbi.nlm.nih.gov/Structure/cdd/wrpsb.cgi"
form_data = {'seqinput': '......'}

try_count = 0
while True:
    try_count += 1

    print 'Request....'
    r = session.post(url, form_data)
    with open('{}.html'.format(try_count), 'wb') as f:
        f.write(r.content)

    root = lxml.html.fromstring(r.content)

    form_data = {input_.get('name'): input_.get('value') for input_ in root.cssselect('#_refresh input')}
    if not form_data:
        break
    form_data['tick'] = '10000'

    print 'Wait for 10 seconds.'
    time.sleep(10)


print 'Done'
rid = root.cssselect('#div_search_info table.searchdata tr:nth-child(1) td:nth-child(2) strong')[0].tail.strip()
webbrowser.open('http://www.ncbi.nlm.nih.gov/Structure/cdd/wrpsb.cgi?RID=' + rid)

相关问题 更多 >

    热门问题