我正试图从这个网站上榨取价格: https://www.pensketruckrental.com/quote/start.html
我可以轻松输入表单数据,然后激活“获取引用”按钮并单击它。
我似乎无法做的是使用网络刮刀提交表单数据(我只是在VBA中进行)。当我使用刮刀输入文本时,按钮保持灰色,甚至在按钮上进行.click
调用只会在表单上显示错误,告知您不要将字段留空。显然它只能在您使用输入设备时识别数据?
当我手动输入时,其中一个必填字段pickupLocation
的代码如下(因此按钮有效并且表单可以提交):
<input
type="text"
id="pickUpLocation"
name="pickUpLocation"
class="penskeValidateField penskeGoogleTypeAhead penskeInlineError ng-isolate-scope ng-touched ng-focused ng-dirty ng-valid-penske-err_loc_empty_sa ng-valid ng-valid-parse ng-valid-required"
aria-invalid="false"
aria-required="false"
country="rentalEntryCtrl.formItems.country"
penske-validate-field="pickuplocation"
required=""
autocompelete="off"
data-penske-placeholder="rentalEntryCtrl.activePlaceHolders.pickUpLocation"
ng-model="rentalEntryCtrl.formItems.pickupLocationSearchCriteria.address"
autocomplete="off">
当我使用刮刀自动输入数据时,标签&amp;属性如下:
<input
type="text"
id="pickUpLocation"
name="pickUpLocation"
class="penskeValidateField penskeGoogleTypeAhead penskeInlineError ng-pristine ng-isolate-scope ng-invalid ng-invalid-required placeholder ng-touched"
aria-invalid="true"
aria-required="true"
country="rentalEntryCtrl.formItems.country"
penske-validate-field="pickuplocation"
required=""
autocomplete="off"
data-penske-placeholder="rentalEntryCtrl.activePlaceHolders.pickUpLocation"
ng-model="rentalEntryCtrl.formItems.pickupLocationSearchCriteria.address"
autocompelete="off">
当然,我尝试使用setAttribute()
将第一个代码块中的字段复制到第二个代码块中,但即使我可以更改属性,我仍然无法正确提交表单。
我看过其他人处理过与自动更正有些相似的事情;他们的解决方案涉及查看标题和响应,只是使用直接XHR循环自动完成查询,但我正在抓取的定价信息是在几页表单提交之后,所以这不是一个选项。
我认为我被卡住了;关于如何填充表格的任何想法,然后点击按钮/通过我的刮刀提交?