如何使用Python (urllib2) 点击JavaScript单选按钮并抓取下一页?[WebScrape, selenium]
我在这方面遇到了一些困难。我有一个经过全面测试的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))
我想做的就是去到点击单选按钮后重定向到的那个页面。我读过关于在Python网页抓取中使用urllib2的JavaScript问题。希望有位热心的Python高手能尽快帮我解决这个问题 :)
1 个回答
0
与其费力地尝试用Python自动点击JavaScript按钮,不如观察一下发送了什么请求,然后模仿这个请求。你可以使用一些Firefox的扩展工具来帮助你,比如TamperData、Firebug和LiveHttp。