Opening a WebSocket Browser Connection... Querying Browser-Level WebSocket URL: http://127.0.0.1:9222/json/version Browser-Level JSON Response: { "Browser": "Chrome/139.0.7258.66", "Protocol-Version": "1.3", "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/139.0.0.0 Safari/537.36", "V8-Version": "13.9.205.16", "WebKit-Version": "537.36 (@a62d329947691f76c376a873eae39f56381103c8)", "webSocketDebuggerUrl": "ws://127.0.0.1:9222/devtools/browser/8c0c3e9d-aca7-4f15-b857-b9eecdefeabe" } Example01.java: Opened Browser Connection: BrowserConn { browser : Chrome/139.0.7258.66 protocolVersion : 1.3 userAgent : Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/139.0.0.0 Safari/537.36 v8Version : 13.9.205.16 webkitVersion : 537.36 (@a62d329947691f76c376a873eae39f56381103c8) webSocketDebuggerUrl : ws://127.0.0.1:9222/devtools/browser/8c0c3e9d-aca7-4f15-b857-b9eecdefeabe } 🟢 [onThreadCreated(...)]: ThreadType=READING_THREAD, Name=ReadingThread 🟢 [onThreadCreated(...)]: ThreadType=WRITING_THREAD, Name=WritingThread 🟢 [onThreadStarted(...)]: ThreadType=READING_THREAD, Name=ReadingThread 🟢 [onThreadStarted(...)]: ThreadType=WRITING_THREAD, Name=WritingThread Web Socket Connection Opened: ws://127.0.0.1:9222/devtools/browser/8c0c3e9d-aca7-4f15-b857-b9eecdefeabe Closing All Currently Open Pages, using BrowserConn Example01.java: Getting all tabs... [Class WebSocketSender] Sending JSON: {"id":39011001,"method":"Target.getTargets"} 🟠 [onSendingFrame(...), OpCode=1, PayloadLength=44]: payload: {"id":39011001,"method":"Target.getTargets"} 🟠 [onFrame(...), OpCode=1, PayloadLength=281]: 🟠 [onTextFrame(...), OpCode=1, PayloadLength=281]: payload: ...ntextId":"29CF7BBE9DD3795FE5D309D96302C18D"}]}} [Class HandleDispatch] Received Browser Message: {"id":39011001,"result":{"targetInfos":[{"targetId":"80011FF1966F5D2E7454390CB46661A5","ty pe":"page","title":"Sam Altman - Wikipedia","url":"https://en.wikipedia.org/wiki/Sam_Altman","attached":false,"canAcces sOpener":false,"browserContextId":"29CF7BBE9DD3795FE5D309D96302C18D"}]}} [Class HandleScriptResponse] Browser Command Response, Received ID: 39011001 Torello.Java.Additional.Promise.acceptResponse(RESPONSE response) invoked response={"targetInfos":[{"targetId":"80011FF1966F5D2E7454390CB46661A5","type":"page" ... Example01.java: Found 1 tabs. Closing Tab: 80011FF1966F5D2E7454390CB46661A5 [Class WebSocketSender] Sending JSON: {"id":39003002,"method":"Target.closeTarget","params":{"targetId":"80011FF1966F5D2E7454390CB46661A5"}} 🟠 [onSendingFrame(...), OpCode=1, PayloadLength=102]: payload: ..."targetId":"80011FF1966F5D2E7454390CB46661A5"}} 🟠 [onFrame(...), OpCode=1, PayloadLength=41]: 🟠 [onTextFrame(...), OpCode=1, PayloadLength=41]: payload: {"id":39003002,"result":{"success":true}} [Class HandleDispatch] Received Browser Message: {"id":39003002,"result":{"success":true}} [Class HandleScriptResponse] Browser Command Response, Received ID: 39003002 Torello.Java.Additional.Promise.acceptResponse(RESPONSE response) invoked response={"success":true} Opening a Sam Altman Wikipedia Page, using BrowserConn. [Class WebSocketSender] Sending JSON: {"id":39007003,"method":"Target.createTarget","params":{"url":"https://en.wikipedia.org/wiki/Sam_Altman"}} 🟠 [onSendingFrame(...), OpCode=1, PayloadLength=106]: payload: ...l":"https://en.wikipedia.org/wiki/Sam_Altman"}} 🟠 [onFrame(...), OpCode=1, PayloadLength=72]: 🟠 [onTextFrame(...), OpCode=1, PayloadLength=72]: payload: ..."targetId":"9D1298093ED099F4FBA6560F2D184A54"}} [Class HandleDispatch] Received Browser Message: {"id":39007003,"result":{"targetId":"9D1298093ED099F4FBA6560F2D184A54"}} [Class HandleScriptResponse] Browser Command Response, Received ID: 39007003 Torello.Java.Additional.Promise.acceptResponse(RESPONSE response) invoked response={"targetId":"9D1298093ED099F4FBA6560F2D184A54"} [Class WebSocketSender] Sending JSON: {"id":39010004,"method":"Target.getTargetInfo","params":{"targetId":"9D1298093ED099F4FBA6560F2D184A54"}} 🟠 [onSendingFrame(...), OpCode=1, PayloadLength=104]: payload: ..."targetId":"9D1298093ED099F4FBA6560F2D184A54"}} 🟠 [onFrame(...), OpCode=1, PayloadLength=256]: 🟠 [onTextFrame(...), OpCode=1, PayloadLength=256]: payload: ...ontextId":"29CF7BBE9DD3795FE5D309D96302C18D"}}} [Class HandleDispatch] Received Browser Message: {"id":39010004,"result":{"targetInfo":{"targetId":"9D1298093ED099F4FBA6560F2D184A54","type ":"page","title":"","url":"https://en.wikipedia.org/wiki/Sam_Altman","attached":false, "canAccessOpener":false,"browserContextId":"29CF7BBE9DD3795FE5D309D96302C18D"}}} [Class HandleScriptResponse] Browser Command Response, Received ID: 39010004 Torello.Java.Additional.Promise.acceptResponse(RESPONSE response) invoked response={"targetInfo":{"targetId":"9D1298093ED099F4FBA6560F2D184A54","type":"page"," ... Example01.java: Created New Tab: Target.TargetInfo: { String targetId "9D1298093ED099F4FBA6560F2D184A54" String type "page" String title "" String url "https://en.wikipedia.org/wiki/Sam_Altman" boolean attached false String openerId null (declared optional) boolean canAccessOpener false String openerFrameId null (declared optional) String browserContextId "29CF7BBE9DD3795FE5D309D96302C18D" } Create PageConn Web-Socket Connection to Altman's Wiki Querying Page-Level WebSocket URL: http://127.0.0.1:9222/json/list Page-Level JSON Response: [ { "description": "", "devtoolsFrontendUrl": "https://chrome-devtools-frontend.appspot.com/serve_rev/@a62d329947691f76c376a873eae39f56381103c8/inspector.html?ws=127.0.0.1:9222/devtools/page/9D1298093ED099F4FBA6560F2D184A54", "faviconUrl": "https://en.wikipedia.org/static/favicon/wikipedia.ico", "id": "9D1298093ED099F4FBA6560F2D184A54", "title": "Sam Altman - Wikipedia", "type": "page", "url": "https://en.wikipedia.org/wiki/Sam_Altman", "webSocketDebuggerUrl": "ws://127.0.0.1:9222/devtools/page/9D1298093ED099F4FBA6560F2D184A54" } ] Example01.java: Found Page Connection to Sam Altman Wiki: PageConn { id : 9D1298093ED099F4FBA6560F2D184A54 type : page title : Sam Altman - Wikipedia url : https://en.wikipedia.org/wiki/Sam_Altman description : webSocketDebuggerUrl : ws://127.0.0.1:9222/devtools/page/9D1298093ED099F4FBA6560F2D184A54 devtoolsFrontendUrl : https://chrome-devtools-frontend.appspot.com/serve_rev/@a62d329947691f76c 376a873eae39f56381103c8/inspector.html?ws=127.0.0.1:9222/devtools/page/9D 1298093ED099F4FBA6560F2D184A54 faviconUrl : https://en.wikipedia.org/static/favicon/wikipedia.ico } 🟢 [onThreadCreated(...)]: ThreadType=READING_THREAD, Name=ReadingThread 🟢 [onThreadCreated(...)]: ThreadType=WRITING_THREAD, Name=WritingThread 🟢 [onThreadStarted(...)]: ThreadType=READING_THREAD, Name=ReadingThread Web Socket Connection Opened: ws://127.0.0.1:9222/devtools/page/9D1298093ED099F4FBA6560F2D184A54 🟢 [onThreadStarted(...)]: ThreadType=WRITING_THREAD, Name=WritingThread Execute the needed Java Script, so the Scraper can Run Example01.java: Page.enable() [Class WebSocketSender] Sending JSON: {"id":32011001,"method":"Page.enable"} 🟠 [onSendingFrame(...), OpCode=1, PayloadLength=38]: payload: {"id":32011001,"method":"Page.enable"} 🟠 [onFrame(...), OpCode=1, PayloadLength=27]: 🟠 [onTextFrame(...), OpCode=1, PayloadLength=27]: payload: {"id":32011001,"result":{}} [Class HandleDispatch] Received Browser Message: {"id":32011001,"result":{}} [Class HandleScriptResponse] Browser Command Response, Received ID: 32011001 Torello.Java.Additional.Promise.acceptResponse(RESPONSE response) invoked response={} Example01.java: DOM.enable() [Class WebSocketSender] Sending JSON: {"id":15006001,"method":"DOM.enable"} 🟠 [onSendingFrame(...), OpCode=1, PayloadLength=37]: payload: {"id":15006001,"method":"DOM.enable"} 🟠 [onFrame(...), OpCode=1, PayloadLength=27]: 🟠 [onTextFrame(...), OpCode=1, PayloadLength=27]: payload: {"id":15006001,"result":{}} [Class HandleDispatch] Received Browser Message: {"id":15006001,"result":{}} [Class HandleScriptResponse] Browser Command Response, Received ID: 15006001 Torello.Java.Additional.Promise.acceptResponse(RESPONSE response) invoked response={} Example01.java: RunTime.enable() [Class WebSocketSender] Sending JSON: {"id":5005001,"method":"Runtime.enable"} 🟠 [onSendingFrame(...), OpCode=1, PayloadLength=40]: payload: {"id":5005001,"method":"Runtime.enable"} 🟠 [onFrame(...), OpCode=1, PayloadLength=265]: 🟠 [onTextFrame(...), OpCode=1, PayloadLength=265]: payload: ...frameId":"9D1298093ED099F4FBA6560F2D184A54"}}}} [Class HandleDispatch] Received Browser Message: {"method":"Runtime.executionContextCreated","params":{"context":{"id":1,"origin":"https:// en.wikipedia.org","name":"","uniqueId":"-4400505925486674569.1562183729599521711","aux Data":{"isDefault":true,"type":"default","frameId":"9D1298093ED099F4FBA6560F2D184A54"} }}} [Class HandleEvent] Browser-Event Json Data: Received Event-Name: Runtime.executionContextCreated Computed Domain-Name: RunTime Computed eventClassName: Torello.Browser.JavaScriptAPI.RunTime$executionContextCreated [Class HandleEvent] Browser Event Received: Event-Class: Torello.Browser.JavaScriptAPI.RunTime.executionContextCreated Browser Event: { Domain: RunTime Name: executionContextCreated Num Fields: 1 } Example01.java: Hander 2 Page Connection Handler has Received: executionContextCreated Browser Event: { Domain: RunTime Name: executionContextCreated Num Fields: 1 } 🟠 [onFrame(...), OpCode=1, PayloadLength=26]: 🟠 [onTextFrame(...), OpCode=1, PayloadLength=26]: payload: {"id":5005001,"result":{}} [Class HandleDispatch] Received Browser Message: {"id":5005001,"result":{}} [Class HandleScriptResponse] Browser Command Response, Received ID: 5005001 Torello.Java.Additional.Promise.acceptResponse(RESPONSE response) invoked response={} Example01.java: RunTime.evaluate() [Class WebSocketSender] Sending JSON: {"id":5006002,"method":"Runtime.evaluate","params":{"expression":"document.documentElement.outerHTML","returnByValue":true}} 🟠 [onSendingFrame(...), OpCode=1, PayloadLength=124]: payload: ...cumentElement.outerHTML","returnByValue":true}} 🟠 [onFrame(...), OpCode=1, PayloadLength=552370]: 🟠 [onTextFrame(...), OpCode=1, PayloadLength=552370]: payload: ...\"oo-ui-element-hidden\"></a></body></html>"}}} [Class HandleDispatch] Received Browser Message: {"id":5006002,"result":{"result":{"type":"string","value":"<html class=\"client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled [Shortened for Brevity] ilicon Valley (born 1985)\"}</script>\n\n<div class=\"rt-overlay\"></div><div id=\"mw-teleport-target\" class=\"vector-body\"></div><a accesskey=\"v\" href=\"https://en.wikipedia.org/wiki/Sam_Altman?action=edit\" class=\"oo-ui-element-hidden\"></a></body></html>"}}} [Class HandleScriptResponse] Browser Command Response, Received ID: 5006002 Torello.Java.Additional.Promise.acceptResponse(RESPONSE response) invoked response={"result":{"type":"string","value":"<html class=\"client-js vector-feature-l ... Example01.java: Response RemoteObject: RunTime.RemoteObject: { String type "string" String subtype null (declared optional) String className null (declared optional) JsonValue value "<html class=\"client-js vector-...-ui-element-hidden\"></a></body></html>" String unserializableValue null (declared optional) String description null (declared optional) String objectId null (declared optional) ObjectPreview preview null (declared optional) CustomPreview customPreview null (declared optional) } Parsing HTML for Images Printing the URL's Example01.java: Number of Images Found: 16 /static/images/icons/wikipedia.png /static/images/mobile/copyright/wikipedia-wordmark-en.svg /static/images/mobile/copyright/wikipedia-tagline-en.svg //upload.wikimedia.org/wikipedia/en/thumb/1/1b/Semi-protection-shackle.svg/20px-Semi-protection-shackle.svg.png //upload.wikimedia.org/wikipedia/commons/thumb/a/a2/Sam_Altman_TechCrunch_SF_2019_Day_2_Oct_3_%28cropped%29.jpg/250px-Sam_Altman_TechCrunch_SF_2019_Day_2_Oct_3_%28cropped%29.jpg //upload.wikimedia.org/wikipedia/commons/thumb/b/bd/Sam_altman_autograph_2024.svg/250px-Sam_altman_autograph_2024.svg.png //upload.wikimedia.org/wikipedia/commons/thumb/0/06/Sam_Altman_speaking_at_TED.jpg/250px-Sam_Altman_speaking_at_TED.jpg //upload.wikimedia.org/wikipedia/commons/thumb/8/8c/The_Prime_Minister_meets_with_AI_developers.jpg/250px-The_Prime_Minister_meets_with_AI_developers.jpg //upload.wikimedia.org/wikipedia/commons/thumb/5/59/Nancy_Pelosi_GLAAD_2017_2_%28cropped%29.jpg/250px-Nancy_Pelosi_GLAAD_2017_2_%28cropped%29.jpg //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/40px-Commons-logo.svg.png //upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikiquote-logo.svg/40px-Wikiquote-logo.svg.png //upload.wikimedia.org/wikipedia/commons/thumb/a/af/OpenAI_logo_2025_%28wordmark%29.svg/250px-OpenAI_logo_2025_%28wordmark%29.svg.png //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/20px-Symbol_category_class.svg.png https://en.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1&usesul3=1 /static/images/footer/wikimedia.svg /w/resources/assets/mediawiki_compact.svg Download the Image's into a folder 00: Image-URL: [https://upload.wikimedia.org/wikipedia/en/thumb/1/1b/Semi-protection-shackle.svg/20px-Semi-protection-shackle.svg.png] Image saved successfully to: [image-downloads/00.png] 01: Image-URL: [https://upload.wikimedia.org/wikipedia/commons/thumb/a/a2/Sam_Altman_TechCrunch_SF_2019_Day_2_Oct_3_%28cropped%29.jpg/250px-Sam_Altman_TechCrunch_SF_2019_Day_2_Oct_3_%28cropped%29.jpg] Image saved successfully to: [image-downloads/01.jpg] 02: Image-URL: [https://upload.wikimedia.org/wikipedia/commons/thumb/b/bd/Sam_altman_autograph_2024.svg/250px-Sam_altman_autograph_2024.svg.png] Image saved successfully to: [image-downloads/02.png] 03: Image-URL: [https://upload.wikimedia.org/wikipedia/commons/thumb/0/06/Sam_Altman_speaking_at_TED.jpg/250px-Sam_Altman_speaking_at_TED.jpg] Image saved successfully to: [image-downloads/03.jpg] 04: Image-URL: [https://upload.wikimedia.org/wikipedia/commons/thumb/8/8c/The_Prime_Minister_meets_with_AI_developers.jpg/250px-The_Prime_Minister_meets_with_AI_developers.jpg] Image saved successfully to: [image-downloads/04.jpg] 05: Image-URL: [https://upload.wikimedia.org/wikipedia/commons/thumb/5/59/Nancy_Pelosi_GLAAD_2017_2_%28cropped%29.jpg/250px-Nancy_Pelosi_GLAAD_2017_2_%28cropped%29.jpg] Image saved successfully to: [image-downloads/05.jpg] 06: Image-URL: [https://upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/40px-Commons-logo.svg.png] Image saved successfully to: [image-downloads/06.png] 07: Image-URL: [https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikiquote-logo.svg/40px-Wikiquote-logo.svg.png] Image saved successfully to: [image-downloads/07.png] 08: Image-URL: [https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/OpenAI_logo_2025_%28wordmark%29.svg/250px-OpenAI_logo_2025_%28wordmark%29.svg.png] Image saved successfully to: [image-downloads/08.png] 09: Image-URL: [https://upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/20px-Symbol_category_class.svg.png] Image saved successfully to: [image-downloads/09.png] 🟠 [onSendingFrame(...), OpCode=8, PayloadLength=2]: payload: � 🟠 [onFrame(...), OpCode=8, PayloadLength=2]: 🔴 [onThreadStopping(...)]: ThreadType=WRITING_THREAD, Name=WritingThread 🟠 [onSendingFrame(...), OpCode=8, PayloadLength=2]: payload: � 🔴 [onThreadStopping(...)]: ThreadType=WRITING_THREAD, Name=WritingThread 🟠 [onFrame(...), OpCode=8, PayloadLength=2]: 🟡 [onCloseFrame()(...), OpCode=8, PayloadLength=2]: Close-Code: 1000, Reason: null 🟡 [onCloseFrame()(...), OpCode=8, PayloadLength=2]: Close-Code: 1000, Reason: null 🔴 [NeoVisionaries] WebSocket DISCONNECTED! 🔴 [NeoVisionaries] WebSocket DISCONNECTED! Socket Disconnected 🔴 Socket Disconnected 🔴 [onThreadStopping(...)]: ThreadType=READING_THREAD, Name=ReadingThread [onThreadStopping(...)]: ThreadType=READING_THREAD, Name=ReadingThread