Menu
Portfolio
Blog
Snippets
Login
Confirm
exit_to_app
Close
Entries
library_add
Utility(Event,Mouse): Log Movement X,Y
delete
Utility(txt): Basic Sentence Generator
delete
Utility(Event,Keyboard): Logger
delete
Utility(txt): Expanded Phrase Generator
delete
Scrape(General|Multi): Paginated Crawler
delete
Scrape(Sunbiz|Multi): Get Biz's By Zip
delete
Utility(Time): Test Load Speed
delete
Scrape(General|Single|NLP): Get Keyword Stats
delete
Scrape(General|Single): Get Text Near Links
delete
Utility(Event|Mouse): Press Down,Up, & Dragend
delete
Utility(Number): Between Range
delete
Utility(Event|Window): On Resize
delete
Scrape(Youtube|Single): Crawl Channel Videos
delete
Scrape(General|Multi): Tiny Link Crawler
delete
Utility(Time): Day of Week Report
delete
Utility(Number): Aspect Ratio Size Pairs
delete
Utility(Data): Sort Object Properties
delete
Scrape(General|Single): RiTa Sentences & Words
delete
Scrape(General|Single): Investigate Element Layers
delete
Scrape(NLP|Single): Using Compromise Plugins
delete
Utility(General): Remote Script Loader
delete
Scrape(General|Single|NLP): Compromise RiTa D3
delete
Scrape(General|Multi|Node): Grouped Node Crawler
delete
Scrape(Amazon|Multi): Crawl Product SERPs
delete
Scrape(Amazon|Multi): Get Paginated Brands
delete
Utility (Data): Download JSON in Browser
delete
Utility (Data): JSON AutoTypes
delete
Scrape(YouTube|Single): Video Page
delete
Utility (Text): Make Page Editable
delete
Utility (Text): Article Editor
delete
Scrape(General|Single|Text): Get Text On Click
delete
Utility (File): DnD File Parser (CSV,JSON,TXT)
delete
Scrape(General|Single): Get Links (Examples)
delete
Scrape(General|Single|Text): Get Sentences by Tag
delete
Utility (File): JSON to CSV via D3.js
delete
Scrape(General|Single): Auto Parse by Content Type
delete
Scrape(General|Single): Get Paragraphs & Sentences
delete
Scrape(Amazon|Multi): Get Reviews by ASIN
delete
Scrape(General|Single): Download Images on Page
delete
Utility(Event,Form): Custom Submit Function
delete
Utility (Fetch): Basic API Post Request
delete
Utility (Event,Form,Fetch): Form Data to API
delete
Utility (Time): Async Delay
delete
Utility (Time): Async Repeat Every N Secs
delete
Scrape(coj): Crawl Property SERPs
delete
Utility (Data): Promise Chain
delete
Utility (Fetch): Examples - JSON,Text,HTML
delete
Scrape(Amazon|Single): Product Review NLP
delete
Utility (Nodejs): Streaming Collections
delete
Scrape(Rate My Professor|Multi): Crawl Prof SERPs
delete
Utility (Time): JS Timer
delete
Utility (Text): Proper Case
delete
Scrape(Thingiverse API): Get Things via Search API
delete
Scrape(General|Single|Node): Get Node Attributes
delete
Scrape(General|Single|Node): Node Attributes + Text
delete
Scrape(Thesaurus): Get Words from SERPs
delete
Scrape(Walmart): Crawl Product SERPs
delete
Scrape(free3d): Crawl 3D Model SERPs
delete
Scrape(Aliexpress|Single): Get Products From SERP
delete
Scrape(simplify3d): Crawl Post SERPs
delete
Scrape(Twitter): Crawl Post Feed (infinite scroll)
delete
Scrape(DDuckGo|Single): Get Links from SERP
delete
Scrape(General|Single): Get Tokens String Distance
delete
Scrape(General|Single): Content Report
delete
Scrape(General|Single|Node): Node Recon (CSV)
delete
Utility (File): D3 JSON to CSV
delete
Scrape(coj|Multi): Crawl Property SERPs
delete
Scrape(coj|Single): sidenote
delete
Scrape(General|Single): Recursive Node Crawler
delete
Utility (Event,Window): Scroll to Root ScrollHeight
delete
Scrape(Indeed|Multi): Crawl Job SERPs
delete
Scrape(Thingiverse API): Get Things By Id
delete
Scrape(Thingiverse): Crawl Things by Category
delete
Scrape(Thingiverse API): Get Thing Batches by Id via DnD
delete
Scrape(YouTube|Single): Get Video Playlist
delete
Utility (Data): Join Thing Metrics & Meta
delete
Utility(Data): Get Nested Array Lengths
delete
Utility (Twitter): Hide Followed Profiles
delete
Utility (Time): YYYY-MM-DD HH:MM:SS
delete
Scrape(Thangs|Multi): Crawl 3D Model SERPs
delete
Scrape(PrusaPrints,Multi): Get Prints
delete
Scrape(Reddit,Single): Get Posts
delete
Userscript(Youtube): Scrape Channel Videos
delete
Userscript(Youtube): Tab Manager
delete
Scrape(Sunbiz|Multi): Biz Details
delete
Utility(Data):DnD View Types
delete
Scrape(General|Single|Node): Select Nodes by Attr
delete
Scrape(Aliexpress|Multi) Get Products via API
delete
Utility(Text): Strip Web Page CSS, Script, Events, Media
delete
Scrape(Youtube|Single) Get Subs
delete
Scrape(General|Single): SelectAll ReduceByProp
delete
Scrape(General|Single): SelectAll ReduceMultiProps
delete
Scrape(General|Multi): Tiny Link Crawler + Delay & Node Reports
delete
Scrape(P5|Multi): Get Examples
delete
Scrape(LinkedIn|Single): Find New Connections
delete
UserScript(linkedIn|Single) Get Jobs
delete
Utility (Time): Date From Days Ago
delete
Utility(General|Single) Keep Scrolling
delete
Scrape(YouTube) Videos From Search
delete
Utility(General|Single): getOffset
delete
Utility(Event,Form): Get Data On Form Input
delete
Utility(Event,Element): ResizeObserver
delete
COCO-SSD Object Categories
delete
Scrape(Wikipedia|Multi): What Links Here?
delete
Scrape(DDuckGo|Single): Download Images
delete
Scrape(General|Single|NLP): Compromise nGram
delete
Scrape(General|Single): Content Report
Edit Snippet
var masterSet = new Set(); var title = document.querySelector("title").innerText; var hTags = [...document.querySelectorAll("h1,h2,h3,h4,h5,h6")].reduce((hTags,el) => { hTags[el.nodeName.toLowerCase()].add(el.innerText); return hTags; }, {h1:new Set(),h2:new Set(),h3:new Set(),h4:new Set(),h5:new Set(),h6:new Set()}) var bTags = [...document.querySelectorAll("b,strong,em,i")].reduce((bTags,el) => { bTags[el.nodeName.toLowerCase()].add(el.innerText); return bTags; }, {b:new Set(),strong:new Set(),em:new Set(),i:new Set()}) var mapMeta = (el) => { var getAttKey = (key) => { return el.getAttribute(key) ? key : false; } var getAttValue = (key) => { return el.getAttribute(key) ? el.getAttribute(key) : false; } return {[getAttKey("charset") || getAttValue("property") || el.name]:el.content || getAttValue("charset") || ""} }; var clean = (str) => str.replace(/[\n\r]+/gim,"\n").replace(/[\^\t ]+/gim," ").replace(/["']+/gim,"").trim(); var meta = [...document.querySelectorAll("meta")].map(mapMeta); var lists = [...document.querySelectorAll("ul,ol")] .reduce((lists,list) => { var type = list.nodeName.toLowerCase(); var listItems = [...new Set([...list.querySelectorAll("li")].map(li => clean(li.innerText)).filter(str => str.length))] listItems.length > 0 ? lists[type].push(listItems) : null; return lists; },{ul:[],ol:[]}); var pTags = [...document.querySelectorAll("p")].map(el => clean(el.innerText)); var p = [...new Set(pTags)].filter(str => str.length); var link = [...document.querySelectorAll("link")].map(link => ({rel:link.rel, href:link.href})).filter(link => link.rel.indexOf("style") == -1) var a = [...document.querySelectorAll("a")].reduce((aTags,a) => { a.href = a.href.replace(/#/gim,"") var prev = masterSet.size; masterSet.add(a.href); if(prev < masterSet.size){ var obj = {href:a.href,text:clean(a.innerText),title:clean(a.title)}; var isLocal = a.href.replace(/(http)s?:\/\/(www.)?/gim,"").indexOf(window.location.host) == 0; var isExternal = a.href.indexOf("http") == 0 && !isLocal; isLocal ? aTags.internal.push(obj) : isExternal ? aTags.external.push(obj) : aTags.other.push(obj) } return aTags; }, {internal:[],external:[], other:[]}) console.log({ url:window.location.href, title, lists, link, a, meta, p, b:Object.entries(bTags).map(s => ({[(s[0])]:[...s[1]].map(str => clean(str)).filter(str => str.length > 2 && str.match(/[a-z]/gim))})), h:Object.entries(hTags).map(s => ({[(s[0])]:[...s[1]].map(str => clean(str.replace(/\[edit\]/gim,"").trim()))}))});