如何使用Python (urllib2) 点击JavaScript单选按钮并抓取下一页?[WebScrape, selenium]

1 投票
1 回答
1517 浏览
提问于 2025-04-16 01:19

我在这方面遇到了一些困难。我有一个经过全面测试的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的扩展工具来帮助你,比如TamperDataFirebugLiveHttp

撰写回答