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