2017-08-29 1 views
3

Ich möchte das Netzwerk einer Seite überwachen und alle URLs der JavaScript-Netzwerkereignisse abrufen, ähnlich wie bei PhantomJS 'page.onResourceRequested, aber ich konnte nicht herausfinden, wie das mit dem Google Chrome-Puppenspieler funktioniert.Wie überprüft man den Netzwerkverkehr und erhält die URL von Ressourcenanforderungen?

Ich habe mit Google Chrome's puppeteer Dilettantismus, aber ich kann nicht herausfinden, wie es funktioniert, wie der Ausgang davon wie folgt aussieht:

Page { 
    domain: null, 
    _events: { 
     request: [Function] 
    }, 
    _eventsCount: 1, 
    _maxListeners: undefined, 
    _client: Session { 
     domain: null, 
     _events: { 
      'Page.frameAttached': [Function], 
      'Page.frameNavigated': [Function], 
      'Page.frameDetached': [Function], 
      'Runtime.executionContextCreated': [Function], 
      'Network.requestWillBeSent': [Function: bound _onRequestWillBeSent], 
      'Network.requestIntercepted': [Function: bound _onRequestIntercepted], 
      'Network.responseReceived': [Function: bound _onResponseReceived], 
      'Network.loadingFinished': [Function: bound _onLoadingFinished], 
      'Network.loadingFailed': [Function: bound _onLoadingFailed], 
      'Page.loadEventFired': [Function], 
      'Runtime.consoleAPICalled': [Function], 
      'Page.javascriptDialogOpening': [Function], 
      'Runtime.exceptionThrown': [Function], 
      'Security.certificateError': [Function], 
      'Inspector.targetCrashed': [Function] 
     }, 
     _eventsCount: 15, 
     _maxListeners: undefined, 
     _lastId: 14, 
     _callbacks: Map {}, 
     _connection: Connection { 
      domain: null, 
      _events: {}, 
      _eventsCount: 0, 
      _maxListeners: undefined, 
      _url: 'ws://127.0.0.1:65343/devtools/browser/ca214df4-4357-4b8f-8552-a1524d6652ff', 
      _lastId: 17, 
      _callbacks: Map {}, 
      _delay: 0, 
      _ws: [Object], 
      _sessions: [Object] 
     }, 
     _targetId: 'bbd35bf4-d3ce-4497-a2a0-8cc98b4f0923', 
     _sessionId: 'bbd35bf4-d3ce-4497-a2a0-8cc98b4f0923:1' 
    }, 
    _keyboard: Keyboard { 
     _client: Session { 
      domain: null, 
      _events: [Object], 
      _eventsCount: 15, 
      _maxListeners: undefined, 
      _lastId: 14, 
      _callbacks: Map {}, 
      _connection: [Object], 
      _targetId: 'bbd35bf4-d3ce-4497-a2a0-8cc98b4f0923', 
      _sessionId: 'bbd35bf4-d3ce-4497-a2a0-8cc98b4f0923:1' 
     }, 
     _modifiers: 0, 
     _pressedKeys: Set {} 
    }, 
    _mouse: Mouse { 
     _client: Session { 
      domain: null, 
      _events: [Object], 
      _eventsCount: 15, 
      _maxListeners: undefined, 
      _lastId: 14, 
      _callbacks: Map {}, 
      _connection: [Object], 
      _targetId: 'bbd35bf4-d3ce-4497-a2a0-8cc98b4f0923', 
      _sessionId: 'bbd35bf4-d3ce-4497-a2a0-8cc98b4f0923:1' 
     }, 
     _keyboard: Keyboard { 
      _client: [Object], 
      _modifiers: 0, 
      _pressedKeys: Set {} 
     }, 
     _x: 0, 
     _y: 0, 
     _button: 'none' 
    }, 
    _frameManager: FrameManager { 
     domain: null, 
     _events: { 
      frameattached: [Function], 
      framedetached: [Function], 
      framenavigated: [Function] 
     }, 
     _eventsCount: 3, 
     _maxListeners: undefined, 
     _client: Session { 
      domain: null, 
      _events: [Object], 
      _eventsCount: 15, 
      _maxListeners: undefined, 
      _lastId: 14, 
      _callbacks: Map {}, 
      _connection: [Object], 
      _targetId: 'bbd35bf4-d3ce-4497-a2a0-8cc98b4f0923', 
      _sessionId: 'bbd35bf4-d3ce-4497-a2a0-8cc98b4f0923:1' 
     }, 
     _mouse: Mouse { 
      _client: [Object], 
      _keyboard: [Object], 
      _x: 0, 
      _y: 0, 
      _button: 'none' 
     }, 
     _frames: Map { 
      '232.1' => [Object] 
     }, 
     _mainFrame: Frame { 
      _client: [Object], 
      _mouse: [Object], 
      _parentFrame: null, 
      _url: 'http://mytestdomain.com/', 
      _id: '232.1', 
      _defaultContextId: 4, 
      _waitTasks: Set {}, 
      _childFrames: Set {}, 
      _name: undefined, 
      _loadingFailed: false 
     } 
    }, 
    _networkManager: NetworkManager { 
     domain: null, 
     _events: { 
      request: [Function], 
      response: [Function], 
      requestfailed: [Function], 
      requestfinished: [Function] 
     }, 
     _eventsCount: 4, 
     _maxListeners: undefined, 
     _client: Session { 
      domain: null, 
      _events: [Object], 
      _eventsCount: 15, 
      _maxListeners: undefined, 
      _lastId: 14, 
      _callbacks: Map {}, 
      _connection: [Object], 
      _targetId: 'bbd35bf4-d3ce-4497-a2a0-8cc98b4f0923', 
      _sessionId: 'bbd35bf4-d3ce-4497-a2a0-8cc98b4f0923:1' 
     }, 
     _requestIdToRequest: Map {}, 
     _interceptionIdToRequest: Map { 
      null => [Object], 'id-1' => [Object], 'id-2' => [Object], 'id-3' => [Object] 
     }, 
     _extraHTTPHeaders: Map {}, 
     _requestInterceptionEnabled: true, 
     _requestHashToRequestIds: Multimap { 
      _map: [Object] 
     }, 
     _requestHashToInterceptions: Multimap { 
      _map: Map {} 
     } 
    }, 
    _emulationManager: EmulationManager { 
     _client: Session { 
      domain: null, 
      _events: [Object], 
      _eventsCount: 15, 
      _maxListeners: undefined, 
      _lastId: 14, 
      _callbacks: Map {}, 
      _connection: [Object], 
      _targetId: 'bbd35bf4-d3ce-4497-a2a0-8cc98b4f0923', 
      _sessionId: 'bbd35bf4-d3ce-4497-a2a0-8cc98b4f0923:1' 
     }, 
     _emulatingMobile: false, 
     _injectedTouchScriptId: null 
    }, 
    _tracing: Tracing { 
     _client: Session { 
      domain: null, 
      _events: [Object], 
      _eventsCount: 15, 
      _maxListeners: undefined, 
      _lastId: 14, 
      _callbacks: Map {}, 
      _connection: [Object], 
      _targetId: 'bbd35bf4-d3ce-4497-a2a0-8cc98b4f0923', 
      _sessionId: 'bbd35bf4-d3ce-4497-a2a0-8cc98b4f0923:1' 
     }, 
     _recording: false, 
     _path: '' 
    }, 
    _pageBindings: Map {}, 
    _ignoreHTTPSErrors: false, 
    _screenshotTaskQueue: TaskQueue { 
     _chain: Promise { 
      undefined 
     } 
    }, 
    _viewport: { 
     width: 800, 
     height: 600 
    } 
} 

Können Sie mir bitte sagen, wie kann ich alle URLs der JavaScript Netzwerk Events mit Puppenteer?

Antwort

4

Überprüfen Sie die sample, die Bildanforderungen abfängt. Einfach zu ändern, um andere Typen von Ressourcenanfragen zu betrachten:

await page.setRequestInterceptionEnabled(true); 
page.on('request', request => { 
    if (/\.js$/i.test(request.url)) { 
    // request for js resource 
    } 
    request.continue(); 
}); 
await page.goto('https://example.com'); 
Verwandte Themen