使用Python中的internetexplorer、Opera、Chrome、Firefox和Safari监视访问的网站

2024-06-26 13:33:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为工作而工作,似乎遇到了一个小问题。这个项目是一个类似于网络保姆的项目,但品牌是我客户的公司。它将有功能,如网站拦截网址,关键字和网络活动日志。我还需要它能够“暂停”下载,直到输入一个可接受的用户名和密码。在

我发现了一个脚本来监视在internetexplorer中访问的URL(如下所示),但它似乎使浏览器的速度大大减慢。对于如何在其他浏览器中实现这一点,我没有找到任何支持或想法。在

所以,我的问题是:

(一)。如何监视其他浏览器活动/访问的URL? 2) 一。除非输入可接受的用户名和密码,否则如何阻止下载?在


from  win32com.client import Dispatch,WithEvents
import time,threading,pythoncom,sys

stopEvent=threading.Event()
class EventSink(object):

    def OnNavigateComplete2(self,*args):
        print "complete",args
        stopEvent.set()


def waitUntilReady(ie):
    if ie.ReadyState!=4:
        while 1:
            print "waiting"
            pythoncom.PumpWaitingMessages()
            stopEvent.wait(.2)
            if stopEvent.isSet() or ie.ReadyState==4:
                stopEvent.clear()
                break;

time.clock()
ie=Dispatch('InternetExplorer.Application',EventSink)
ev=WithEvents(ie,EventSink)
ie.Visible=1
ie.Navigate("http://www.google.com")

waitUntilReady(ie)
print "location",ie.LocationName
ie.Navigate("http://www.aol.com")
waitUntilReady(ie)
print "location",ie.LocationName
print ie.LocationName,time.clock()
print ie.ReadyState

Tags: 项目import网络url密码time浏览器用户名
2条回答

我建议你看看一个不错的网络代理。如果这些机器都在同一个网络上,您可以实现一个透明的缓存web代理,并在其上添加过滤规则。它们的速度很快,可以做很多很酷的事情。在

我对鱿鱼有些运气。这能解决你的问题吗?在

您需要将其实现为C++BHO,sink DWebBrowserEvents2::OnBeforeNavigate并在那里实现您的逻辑,因为它是一个将同步阻止导航直到您返回的位置,并且您还可以取消导航。在

相关问题 更多 >