如何使用 python mechanize 解析动态更新的 .jsp 表单?
我正在学习如何使用 Python Mechanize 来抓取一些数据。在大多数情况下,它是有效的,但我遇到的一个问题是我正在查看的 .jsp 页面会动态更新,而不是使用“提交”按钮。
因此,我遇到了两个相关问题:
1)我需要在页面上设置多个 SelectControl。在我设置第一个 SelectControl 之前,不会填充第二个 SelectControl 的项目。如何将第一个 SelectControl 设置为我想要的值来刷新页面(在“真实”浏览器窗口中,当我从第一个下拉列表中选择一个选项时,会自动发生这种情况)。我尝试使用浏览器对象的response() 和reload() 方法,但是这些方法会删除我分配给第一个SelectControl 的值。
2) 当设置 SelectControl 控件值时,我想要抓取的数据会动态出现。同样,我需要以某种方式刷新浏览器以反映这些值,但没有提交按钮。
I'm learning how to use Python Mechanize to scrape some data. For the most part, it's working, but one problem I've run into is that the .jsp page I'm looking at updates dynamically instead of using a 'submit' button.
I'm running into two related issues as a result:
1) There are multiple SelectControls I need to set on the page. The items of the second SelectControl are not populated until I've set the first SelectControl. How do I refresh the page with the first SelectControl set to my desired value (in a 'real' browser window, this happens automatically as I select an option from the first dropdown). I've tried using response() and reload() methods of the browser object, but these erase the value I assigned to the first SelectControl.
2) The data I would like to scrape appears dynamically when the SelectControl control values are set. Again, I need to somehow refresh the browser to reflect those values, but there's no submit button.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Mechanize 不处理 javascript,您可以复制 javascript 的功能(例如找出可能的值并手动构建/选择它)。有关更多详细信息和替代解决方案,请参阅此答案 如何正确使用 mechanize 抓取 AJAX 网站
Mechanize doesn't handle javascript, you could replicate what the javascript does (eg find out the possible values and build/select it manually). See this answer for more details and an alternative solution How to properly use mechanize to scrape AJAX sites