![](/img/trans.png)
[英]Scraping JavaScript-loaded HTML with Ruby on Rails and Nokogiri
[英]Scraping Webpages with Javascript-loaded <select> options
我正在尝试使用Python的机械化模块来提交HTML POST表单请求。 为此,我必须从<select>元素中选择一个选项,但是这些选项是由Javascript动态加载的。
由于我知道要使用的<select>选项,因此我尝试使用尚未加载的选项值构造表单请求,方法如下:
browser.find_control(name="formName", kind="list").value = ["optionValue"]
但是,mechanize会引发ItemNotFoundError,因为它将值视为无效。 此外,我尝试将所需的选项值附加到listvalue上,然后进行设置,但这也不起作用。 知道如何解决此问题并将控件设置为Javascript加载值吗?
也许您已经做到了,但是当您尝试将选项追加到<select>
列表时,请使用JavaScript中较麻烦的document.createElement
, parentNode.appendChild
方法,而不要使用innerHMTL=...
,jQuery html(..)
或jQuery $('<..>..</..>')
并不总是完全或正确地工作(例如,在您的情况下)。
动态加载选项还可以将令牌(例如csrf )插入表单中的隐藏字段,该令牌必须包含在帖子中。 在这种情况下,您必须在创建帖子之前触发或等待选项的加载。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.