gpt4 book ai didi

javascript - 在 python 中模拟 javascript _dopostback,网络抓取

转载 作者:行者123 更新时间:2023-11-29 20:21:17 25 4
gpt4 key购买 nike

在这里LINK建议可以“弄清楚 JavaScript 正在做什么并在您的 Python 代码中模拟它:”这就是我想要帮助做的事情,即我的问题。我如何模拟 javascript:__doPostBack ?

来自网站的代码(全页源代码在这里 LINK :

<a style="color: Black;" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$gvSearchResults','Page$2')">2</a>

当然,我基本上知道从这里到哪里去。

在此先感谢您的帮助和想法

好吧,有很多帖子询问如何在使用 python 库 mechanize、beautifulsoup 进行网页抓取时单击 javascript 按钮,类似的。我看到很多“不受支持”的回复都使用了这个非 Python 解决方案。我认为这个问题的 python 解决方案对很多人都有很大的好处。鉴于此,我不是在寻找诸如使用 x、y 或 z 之类的答案,它们不是 python 代码或需要与浏览器交互。

最佳答案

mechanize 页面并不建议您可以在 Python 中模拟 JavaScript。它是说您可以更改表单中的隐藏字段,从而欺骗人为 1 的 Web 服务器。 已选择字段。您仍然需要自己分析目标。

这个问题没有基于 Python 的解决方案,除非您希望在 Python 中创建一个 JavaScript 解释器。

My thoughts在这个问题上,我想到了三种可能的解决方案:

  1. 创建一个 XULRunner应用
  2. 浏览器自动化
  3. 尝试解释客户端代码

在这三个中,我只真正看到了对 2 个的讨论。我看到了一些东西在商业抓取应用程序中接近 1,您基本上可以在其中创建通过浏览站点并选择页面上的内容来编写脚本希望将来提取脚本。

1 可能通过接受一个 Python 脚本来工作wsgi 的序列化(JSON?)请求对象,让应用程序获取URL,然后将处理后的页面作为 wsgi 响应对象发送。你可以可能在 urllib2 周围包装一些中间件来实现这一点。矫枉过正可能吧,但想想还是挺有趣的。

2 通常通过 Selenium RC 实现(Remote Control),一个以测试为中心的工具。它提供了一些像 getHtmlSource 这样的方法,但我见过的大多数人听说过使用它,但不喜欢它的 API。

3 我不知道。 node.js现在很热,但我还没有碰了它。我一直无法构建 spidermonkey在我的Ubuntu上机器,所以我也没有碰过它。我的直觉是,为了做到这样,您将向 JS 提供 HTML 源代码和您的详细信息解释器,需要假装是你的用户代理等,以防JavaScript 想要重新连接服务器。

1 好吧,从技术上讲,一个符合 JavaScript 的用户代理,它几乎总是一个由人类使用的网络浏览器

关于javascript - 在 python 中模拟 javascript _dopostback,网络抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3898660/

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