我想通過Chrome調試協議獲取網頁資源內容使用python method-getResourceContent,我注意到了這個方法:getResourceContent,需要params frameId和url.i認爲這個方法是什麼我需要。 ,所以我做了這件事:如何通過chrome遠程調試獲取網頁資源內容
1.get開始鉻作爲服務器:\的chrome.exe --remote調試端口= 9222
2.write的Python測試代碼:
# coding=utf-8
"""
chrome --remote-debugging api test
"""
import json
import requests
import websocket
import pdb
def send():
geturl = requests.get('http://localhost:9222/json')
websocketURL = json.loads(geturl.content)[0]['webSocketDebuggerUrl']
request = {}
request['id'] = 1
request['method'] = 'Page.navigate'
request['params'] = {"url": 'http://global.bing.com'}
ws = websocket.create_connection(websocketURL)
ws.send(json.dumps(request))
res = ws.recv()
ws.close()
print res
frameId = json.loads(res)['result']['frameId']
print frameId
geturl = requests.get('http://localhost:9222/json')
websocketURL = json.loads(geturl.content)[0]['webSocketDebuggerUrl']
req = {}
req['id'] = 1
req['method'] = 'Page.getResourceContent'
req['params'] = {"frameId":frameId,"url": 'http://global.bing.com'}
header = ["User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"]
pdb.set_trace()
ws = websocket.create_connection(websocketURL,header=header)
ws.send(json.dumps(req))
ress = ws.recv()
ws.close()
print ress
if __name__ == '__main__':
send()
3.Page.navigate做工精細,我有這樣的事情: { 「ID」:1, 「結果」:{ 「frameId」: 「8504.2」}}
4.當我嘗試的方法:getResourceContent ,錯誤出來了: {「error」:{「code」: - 32000,「message」:「代理未啓用。「},」id「:1}
我試着添加User-Agent,仍然無法工作。
謝謝。