手动浏览时抓取网页



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

如果没有解决方案,我的问题是我想从HTML5游戏中抓取元素来制作各种智能代理。我不会透露更多的细节,但我怀疑,如果其他人在未来也试图做同样的事情(或与真实用户进行实时抓取),那么这个解决方案可能对他们也很有用。

提前感谢!

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

同样,如果你对路由器有控制权,你可以在那里配置捕获和记录,例如使用tcpdump。当然,这不会解密加密的通信。

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

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

因此,您最好查看操作系统级别或浏览器级别的脚本服务,这些服务可以"驱动"键盘和鼠标事件,拍摄屏幕截图,甚至可能拍摄当前页面DOM的快照并查询它。

你可以研究一下浏览器自动化和测试框架,比如Selenium。

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

我已经使用PyQt的一个简单的浏览器窗口(对于一个完全不同的应用程序),它似乎处理简单的,样本HTML5游戏。如何深入了解游戏的细节是PyQt专家的问题,而不是我的问题。

最新更新