当前位置: 首页 > 面试题库 >

如何单击href中具有javascript:__ doPostBack的链接?

梁嘉澍
2023-03-14
问题内容

我正在使用模块“ mechanize”在python中编写屏幕抓取脚本,我想在href中具有javascript:__
doPostBack的链接上使用mechanize.click_link()方法。我相信我要解析的页面正在使用AJAX。

注意:机械是mechanize.Browser()

>>> next_link.__class__.__name__
'Link'
>>> next_link
Link(base_url='http://www.citius.mj.pt/Portal/consultas/ConsultasDistribuicao.aspx', url="javascript:__doPostBack('ctl00$ContentPlaceHolder1$Pager1$lnkNext','')", text='2', tag='a', attrs=[('id', 'ctl00_ContentPlaceHolder1_Pager1_lnkNext'), ('title', 'P\xc3\xa1gina seguinte: 2'), ('href', "javascript:__doPostBack('ctl00$ContentPlaceHolder1$Pager1$lnkNext','')")])
>>> req = mech.click_link(next_link)
>>> req
<urllib2.Request instance at 0x025BEE40>
>>> req.has_data()
False

单击链接后,我想检索页面源。


问题答案:

我不使用机械化,但是我在网上做了很多使用python抓取自己的事情。

当我遇到诸如__doPostBack之类的javascript函数时,我将执行以下操作:
我访问Firefox中的网站,并使用HttpFox扩展名来查看单击相关链接时浏览器发送到Web服务器的POST请求的参数。
然后,我使用urllib.parse.urlencode在python中构建相同的请求,以构建所需的查询字符串和POST数据。
有时网站也使用cookie,因此我只使用python的http.cookiejar。

我已经成功地使用了这种技术几次。



 类似资料:
  • 问题内容: 以下是一堆链接,其中 只有一个 具有子字符串“ long”作为属性href的值 我需要单击其子字符串为“ long” 的链接。我怎样才能做到这一点? PS://由名字选择的b / c 问题答案: 我需要单击href包含子字符串“ long”的链接。我怎样才能做到这一点? 具有CSS选择器的美丽。 您的陈述将是… 这是英文的意思 给我找到任何具有属性的“ a”元素,以及具有“ long”

  • 我有一个html链接

  • 问题内容: 我有一个标签,在某些情况下,我希望此标签被完全禁用。 注释中的代码(这是链接的生成方式) 问题答案: 当您不希望用户点击时重定向时,请尝试此操作

  • 问题内容: 我正在使用python的机械化模块导航网站,并且无法单击下一页的javascript链接。我做了一些阅读,有人建议我需要python- spidermonkey和DOMforms。我设法通过不知道实际单击链接的语法来安装它们。 我可以将页面上的代码标识为: 有人知道如何单击吗?或者也许还有另一种工具。 谢谢 问题答案: 对于这些用例,我主要在jython下使用HtmlUnit。我还发表

  • 问题内容: 我想抓取页面,然后转到下一个链接,如下所示: scrapy能够解释该脚本的javascript代码吗? 通过livehttpheaders扩展,我发现单击Next会生成一个带有大量“垃圾”的POST,如下所示: 我正在尝试在类上构建我的Spider ,但是我无法真正弄清楚如何编写代码,因为我使用该方法来处理第一个URL(碰巧是登录表单),我在其中进行了POST: 然后我定义了commi

  • 我正在尝试识别CQ5网页中的链接并单击它。 以下是html代码: 以下是我试图找到信息并单击它的方法。 正在获取以下异常: 线程“main”org.openqa.selenium.WebDriverException中的异常:未知错误:元素在点(528,174)不可单击。其他元素将收到单击: