W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
FormRequest類擴(kuò)展了基 ?Request
? 具有處理HTML表單的功能。它使用 lxml.html forms 使用表單數(shù)據(jù)預(yù)填充表單域的步驟 ?Response
? 物體。
scrapy.http.
FormRequest
(url[, formdata, ...])這個 ?FormRequest
? 類將新的關(guān)鍵字參數(shù)添加到 __init__
方法。其余參數(shù)與 ?Request
? 在這里沒有記錄。
formdata (dict or collections.abc.Iterable) -- 是包含HTML表單數(shù)據(jù)的字典(或可為(鍵、值)元組),這些數(shù)據(jù)將被URL編碼并分配給請求主體。
這個 ?FormRequest
? 除了標(biāo)準(zhǔn)之外,對象還支持以下類方法 ?Request
? 方法:
from_response
(response[, formname=None, formid=None, formnumber=0, formdata=None, formxpath=None, formcss=None, clickdata=None, dont_click=False, ...])返回新的 ?FormRequest
? 對象,其表單字段值預(yù)填充在HTML中 <form>
包含在給定響應(yīng)中的元素。有關(guān)示例,請參見 使用formRequest.from_response()模擬用戶登錄 .
默認(rèn)情況下,策略是在任何看起來可單擊的窗體控件上自動模擬單擊,如 <input type="submit">
. 盡管這非常方便,而且常常是所需的行為,但有時它可能會導(dǎo)致難以調(diào)試的問題。例如,當(dāng)處理使用javascript填充和/或提交的表單時,默認(rèn) ?from_response()
?行為可能不是最合適的。要禁用此行為,可以設(shè)置 dont_click
參數(shù) True
. 此外,如果要更改單擊的控件(而不是禁用它),還可以使用 clickdata
參數(shù)。
警告
對于選項值中有前導(dǎo)空格或尾隨空格的select元素,使用此方法將不起作用,因為 bug in lxml ,應(yīng)在LXML 3.8及更高版本中修復(fù)。
response (?Response
? object) -- 包含用于預(yù)填充表單字段的HTML表單的響應(yīng)
formname (str) -- 如果給定,將使用名稱屬性設(shè)置為該值的表單。
formid (str) -- 如果給定,將使用ID屬性設(shè)置為該值的表單。
formxpath (str) -- 如果給定,將使用與xpath匹配的第一個表單。
formcss (str) -- 如果給定,將使用與CSS選擇器匹配的第一個表單。
formnumber (int) -- 當(dāng)響應(yīng)包含多個表單時要使用的表單數(shù)。第一個(也是默認(rèn)值)是 0
.
formdata (dict) -- 要在表單數(shù)據(jù)中重寫的字段。如果響應(yīng)中已存在字段 <form>
元素,其值將被此參數(shù)中傳遞的值重寫。如果此參數(shù)中傳遞的值是 None
,即使響應(yīng)中存在該字段,該字段也不會包含在請求中。 <form>
元素。
clickdata (dict) -- 用于查找單擊的控件的屬性。如果沒有給出,將提交表單數(shù)據(jù),模擬單擊第一個可單擊元素。除了HTML屬性之外,控件還可以通過其相對于表單內(nèi)其他可提交輸入的基于零的索引進(jìn)行標(biāo)識,方法是 nr
屬性。
dont_click (bool) -- 如果為真,則表單數(shù)據(jù)將在不單擊任何元素的情況下提交。
該類方法的其他參數(shù)直接傳遞給 FormRequest __init__
方法。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: