【问题标题】:Mechanicalsoup whit interactive pages (without open browser)Mechanicalsoup 带有交互式页面(无需打开浏览器)
【发布时间】:2018-07-05 03:17:24
【问题描述】:

我对带有表单的交互页面有疑问,因为我必须从表单中选择一个元素,然后渲染当前页面并抓取它

表单是一个简单的单选按钮,它包含一个 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,因为它会打开浏览器

尊重!

【问题讨论】:

标签: javascript python web-scraping mechanicalsoup


【解决方案1】:

您可能需要选择您的选项

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

【讨论】:

  • 您好,欢迎来到 StackOverflow!如果可以的话,请确保在描述某些东西的工作原理时使用英语(例如在代码 cmets 中),因为这是 StackOverflow 的政策。这样,如果其他人发现您的回答有用,他们将更有可能理解您想说的话。
猜你喜欢
  • 1970-01-01
  • 2010-11-24
  • 2015-05-19
  • 2022-07-04
  • 1970-01-01
  • 1970-01-01
  • 2021-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多