我首先使用 selenium 加载通过 ajax 生成的表单。
现在我在将 selenium 响应传递给 scrapy FormReuqest 方法时遇到了麻烦
发送表单数据值。
表单在用户提交之前经过 jquery 验证,这是否会使使用 scrapy 提交变得更加困难?
任何帮助都将受到赞赏。
您不需要Scrapy
,selenium
这里也不需要。只需发出底层POST
请求并解析 json 响应。使用的示例requests
:
import json
import requests
URL = 'http://calculator.shipito.com/en/rates'
data = {"location": "10", "country": "GB", "city": "London",
"postalcode": "123456",
"packages": [{"dimensions_units": "in", "weight_units": "lbs", "dimension": {"width": "9", "height": "20.4", "length": "17"},
"weight": "9", "value": "170"}]}
response = requests.post(URL, data=json.dumps(data))
print response.json()
印刷:
[
{u'infoUrl': u'http://www.shipito.com/postage#tnt', u'isPromoted': False, u'popularity': 1, u'name': u'TNT Economy', u'deliveryTime': 6, u'insurable': True, u'usesDimWeight': True, u'shippingRate': 68.38, u'separateShippingRate': None, u'bonusShippingRate': 68.38, u'deliveryTimeInfo': u'4-6 business days', u'mps': False, u'insuranceRate': 0, u'logoImg': u'tnt.png'},
...
]