簡體   English   中英

Python:如何使用Request提交CGI表單

[英]Python : How to submit CGI form using Request

我剛剛開始學習Python,並想編寫一個腳本來提交Form。

我發現Form使用CGI,這里是Form:

    <div class="box" id="url_upload">

                <div class="tabcontent">
                   <div class="progress_div"></div>
                    <div class="reurlupload">
                            <div class="progress_div"></div>
                            <form method="post" id="uploadurl" action="https://af03.ayefiles.com/cgi-bin/upload.cgi?upload_type=url">
                            <input type="hidden" name="sess_id" value="xv71zsrmtr38oh3z">
                            <input type="hidden" name="utype" value="reg">
                            <input type="hidden" name="file_public" value="1">

                            <div class="leftintab">
                            <p style="margin:0px;">

                                You can enter up to <b>20</b> URLs, one URL per row</br>
                                Max file size is <b>10240 Mb</b>
                            </p>
                                <textarea name="url_mass" style="width:100%; margin-top: 10px;" placeholder="e.g. http://example.com/xxxxxxxxxx.xyz"></textarea>
                            </div>

我使用請求制作python腳本,如下所示:

#I have session with my login & password as cookie
#Go to form page
login = s.get('https://ayefiles.com/?op=upload_form')
login_html = html.fromstring(login.content)
hidden_inputs = login_html.xpath('//input[@type="hidden"]')
# Input query data
form = {x.attrib["name"]: x.attrib["value"] for x in hidden_inputs}
form ['sess_id']= 'xv71zsrmtr38oh3z'
form['utype']= 'reg'
form ['file_public']= '1'
form['url_mass'] = longurl
# POST
login = s.post('https://af03.ayefiles.com/cgi-bin/upload.cgi?upload_type=url', data=form)
print (login.url)

我對login.url ==> ayefiles.com/?op=upload_result&st=OK&fn=xxxxx的預期結果

但是我的結果失敗了,==> ayefiles.com/?op=upload_result&st=Torrent%20engine%20is%20not%20running& fn = undef

如何解決我的問題? 我的代碼有什么問題? 請為我提供正確的代碼。

我對部分多格式數據的錯誤。

正確的代碼:

form ={'sess_id':(None,'xv71zsrmtr38oh3z'),'utype':(None,'reg'),'file_public':(None,'1'),'url_mass':(None,longurl)}
login = s.post('https://af03.ayefiles.com/cgi-bin/upload.cgi?upload_type=url', data=form)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM