javascript - Mechanicalsoup 带有交互式页面(无需打开浏览器)
问题描述
我对带有表单的交互页面有问题,因为我必须从表单中选择一个元素,然后渲染当前页面并抓取它
表单是一个简单的单选按钮,它包含一个 onclick 动作并调用一个写入 DOM 元素的 js 函数
<input id="RBLOpcionBuscar_2" type="radio" name="RBLOpcionBuscar" value="Todas" onclick="javascript:setTimeout('__doPostBack(\'RBLOpcionBuscar$2\',\'\')', 0)" />
我找到了不同的选项来获取由 javascript 生成的元素:dryscrape、requests_html、python-qt4 和 selenium,但我不知道如何集成它们,我不想使用 Selenium,因为它会打开浏览器
尊重!
解决方案
您可能需要选择您的选项
browser["RBLOpcionBuscar"] = "Todas"
然后发送隐藏的输入
# option of query calls
browser.get_current_form().set("__EVENTTARGET", "GVConvocatorias", True)
# call identifier
browser.get_current_form().set("__EVENTARGUMENT", "Page$" + str(jump_page), True)
这是一个例子
https://github.com/danipilze/BECAS_ICETEX/blob/master/main.py
推荐阅读
- python - 图像到文本 - Pytesseract 与 Windows 上的数字作斗争
- swift - 未连接 VC 的委托和协议
- python - 根据自己的需要扩展 Python 语法:有多难?它会破坏 Anaconda 吗?
- python - 运行 Docker-Image 时出现 ModuleNotFoundError
- python - 基于列值的分组和随机样本
- java - Apache NiFi:每当修改表记录时如何从 Cassandra 表中获取数据
- autodesk-forge - Autodesk Forge 查看器 - 单击通过 SceneBuilder 创建的模型上的事件
- javascript - 如何从 JavaScript 中的两个数组创建一个 json 对象
- javascript - 输入和模型未正确填充数据
- javascript - 如何检索鼠标相对于元素的位置