首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -在两个浏览器之间传输会话

Python -在两个浏览器之间传输会话
EN

Stack Overflow用户
提问于 2014-01-19 18:57:01
回答 1查看 386关注 0票数 1

问题:

我编写了大量代码(用于在线自动化一些相当辛苦的任务),并使用Python的机械库来处理网络请求。它工作得很好,除了现在我遇到了一个我需要 javascript功能的页面.机械化不处理javascript

提出的解决方案:

我使用PyQt来编写这个应用程序的图形用户界面,它附带了处理javascriptQtWebKit包。我想使用QtWebKit来评估我被困在的页面上的javascript,最简单的方法就是将我的web会话从机械化转移到QtWebKit

我不想对我的整个web请求使用PhantomJSSeleniumQtWebKit;我100%希望为此目的保持机械化。我想知道如何才能将已登录的会话从机械化传输到QtWebKit

这能行吗?

  • 将所有cookie从机械化传输到QtWebView
  • 传递所有状态变量的值(如_VIEWSTATE等)从机械化到QWebView (页面是一个ASP.net页面.)
  • QWebView的用户代理头更改为与机械化相同的.

我真不明白如何才能让这两个“浏览器”看起来更像服务器.这个能行吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-03 16:46:05

既然没人接,我就把我的工作发出去。

基本上,我希望“将”我的会话从机械化( python模块)转移到QtWebKits QWebView (PyQt4模块),因为我的项目绝大多数都是自动无头的,但我遇到了一个路障,我别无选择,只能让用户手动将数据输入到可能的结果页面中(因为每次情况不同,表单就不同了)。

I没有传输会话,而是通过使用QWebViews javascript功能来满足这一要求。我的方法是这样的:

  1. 加载机械化页面,将下载的HTML保存到本地临时文件中。
  2. 在QWebView中加载此本地文件。
  3. 用户现在可以在此页面的本地副本中输入所需的数据。
  4. 找到此页面上的表单字段,并使用javascript提取用户输入的数据。您可以通过获取页面(QWebView->Page()->MainFrame()),的主框架对象,然后计算javascript代码来完成上述任务(使用evaluateJavaScript()). )。
  5. 获取从表单字段中提取的数据,并使用它提交表单,并与您仍然打开的机械连接一起提交表单。

就这样!有点工作,但也很管用:\

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21221141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档