gpt4 book ai didi

javascript - 如何单击 javascripted 单选按钮并使用 Python (urllib2) 获取下一页? [WebScrape, Selenium ]

转载 作者:行者123 更新时间:2023-11-28 10:30:29 25 4
gpt4 key购买 nike

我正在为此苦苦挣扎。我有一个经过充分测试的 python 脚本。我必须做一个小的改变,其中我必须首先单击一个单选按钮,该按钮又自动执行一个 javascript 函数,将页面转发到搜索表单。

我的工作平台:Linux

语言:Python

单选按钮代码:

<input type="radio" language="javascript" onclick="javascript:setTimeout('__doPostBack(\'_ctl0$Main$SearchRadio\',\'\')', 0)" value="SearchRadio" name="_ctl0:Main:SearchRadio" id="_ctl0_Main_SearchRadio">

页面上的Javascript代码:

<script type="text/javascript">
<!--
var theForm = document.forms['aspnetForm'];
if (!theForm) {
theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</script>

这就是 Selenium 的作用。不确定它是否有帮助。

 def test_untitled(self):
sel = self.selenium
sel.open("/Search/results.aspx")
sel.click("_ctl0_Main_SearchRadio")
sel.wait_for_page_to_load("30000")
sel.type("-InputTextField", "ThinkCode")
sel.click("_SearchMainUser")
sel.wait_for_page_to_load("30000")
try: self.failUnless(sel.is_text_present("ThinkCode"))
except AssertionError, e: self.verificationErrors.append(str(e))

我想做的就是转到单击单选按钮后重定向到的结果页面。我读到了关于使用 urllib2 在 python 网络抓取中的 javascript 恐怖。希望好心的 pythonista 能尽快帮助我:)

最佳答案

不要尝试自动单击 JavaScript 按钮(这在 Python 中很困难),而是尝试监视发送的请求,然后复制它。有各种 Firefox 扩展可以帮助您执行此操作,例如 TamperData , Firebug ,和 LiveHttp .

关于javascript - 如何单击 javascripted 单选按钮并使用 Python (urllib2) 获取下一页? [WebScrape, Selenium ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3251380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com