1

有没有办法,使用一些库或方法,在用户手动导航时实时抓取网页?我所知道的大多数爬虫(例如python mechanize )都会创建一个模拟浏览器的浏览器对象 - 当然这不是我想要的,因为如果我打开浏览器,它将与 mechanize 创建的不同。

如果没有解决方案,我的问题是我想从 HTML5 游戏中抓取元素来制作某种智能代理。我不会详细介绍,但我怀疑如果其他人在未来尝试做同样的事情(或与真实用户进行任何实时抓取),解决此问题的方法也可能对他们有用。

提前致谢!

4

2 回答 2

1

根据您的用例,您可以设置SOCKS代理或其他形式的代理并将其配置为记录所有流量,然后指示您的浏览器使用它。然后你会以某种方式刮掉那个日志。

同样,如果您可以控制您的路由器,您可以在那里配置捕获和日志记录,例如使用tcpdump. 当然,这不会解密加密的流量。

如果您只使用一个浏览器,可能有一种方法可以通过自定义浏览器插件指示它在每个操作中执行某些操作,但我不得不猜测您会遇到很多安全模型问题。

HTML5 游戏的问题在于,它的大部分“导航”通常是使用大量 Javascript 完成的。Javascript 通常会做很多事情——操纵 DOM,触发对新内容的请求以适应 DOM,等等……

正因为如此,您最好研究一下操作系统级别或浏览器级别的脚本服务,这些服务可以“驱动”键盘和鼠标事件、截取屏幕截图,甚至可能获取当前页面 DOM 的快照并进行查询。

您可能会为此研究浏览器自动化和测试框架,例如Selenium

于 2013-05-04T21:06:44.193 回答
0

我不确定这是否适用于您的情况,但可以使用 PyQt 创建一个简单的 Web 浏览器,该浏览器可以与 HTML5 一起使用,并且可以捕获实时用户玩游戏时发生的情况。

我将 PyQt 用于一个简单的浏览器窗口(用于完全不同的应用程序),它似乎可以处理简单的 HTML5 示例游戏。如何深入研究游戏的细节是 PyQt 专家的问题,而不是我。

于 2013-05-04T21:27:05.747 回答