-
Notifications
You must be signed in to change notification settings - Fork 0
/
javascrape_bookmarklets_chrome.html
21 lines (21 loc) · 5 KB
/
javascrape_bookmarklets_chrome.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE NETSCAPE-Bookmark-file-1>
<!-- This is an automatically generated file.
It will be read and overwritten.
DO NOT EDIT! -->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<TITLE>Bookmarks</TITLE>
<H1>Bookmarks</H1>
<DL><p>
<DT><H3 ADD_DATE="1508843202" LAST_MODIFIED="1513114825" PERSONAL_TOOLBAR_FOLDER="true">Bookmarks bar</H3>
<DL><p>
<DT><H3 ADD_DATE="1513107458" LAST_MODIFIED="1513114510">JavaScrape</H3>
<DL><p>
<DT><A HREF="javascript: function ConvertToCSV(objArray) { var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray; var str = ''; str += Object.getOwnPropertyNames(array[0]).join(",") + '\r\n'; for (var i = 0; i < array.length; i++) { var skipLine = false; var line = ''; for (var index in array[i]) { if (line != '') line += ','; line += array[i][index]; } if(skipLine == false){ str += line + '\r\n'; } } return str; } function downloadCSV(data,fileName) { var convertedJSON = ConvertToCSV(data); var csvData = new Blob([convertedJSON], { type: 'text/csv;charset=utf-8;' }); if (navigator.msSaveBlob) { navigator.msSaveBlob(csvData, fileName+'.csv'); } else { var link = document.createElement('a'); link.href = window.URL.createObjectURL(csvData); link.setAttribute('download', fileName+'.csv'); document.body.appendChild(link); link.click(); document.body.removeChild(link); }; } function onlyUnique(value, index, self) { return self.indexOf(value) === index; } function prepJSONforCSV(jsonData){ var props = getUniqueAttributeList(jsonData); return jsonData.map(function(row){ var obj = {}; props.forEach(function(prop){ if (!row.hasOwnProperty(prop)) { obj[prop] = "[[blank]]"; }else{ obj[prop] = row[prop]; }; }); return obj; }); } function elementAttributesToJSON (value, index, ar) { var obj = {}; for (var att, i = 0, atts = value.attributes, n = atts.length; i < n; i++){ att = atts[i]; obj[att.nodeName] = att.nodeValue.replace(/[\t\n\r,]/g,' ').replace(/\s+/g,' ').trim(); } if(value.textContent) { obj.textContent = value.textContent.replace(/[\t\n\r,]/g,' ').replace(/\s+/g,' ').trim(); }else { obj.textContent = "[[blank]]"; }; return obj; } function scrapeByElementName(elementName, fileName){ var getElements = document.getElementsByTagName(elementName); var collection = Array.prototype.slice.call(getElements).map(elementAttributesToJSON); var preppedData = prepJSONforCSV(collection); downloadCSV(preppedData, fileName); } function scrapeByClassName(className, fileName){ var getElements = document.getElementsByClassName(className); var collection = Array.prototype.slice.call(getElements).map(elementAttributesToJSON); var preppedData = prepJSONforCSV(collection); downloadCSV(preppedData, fileName); } function getUniqueAttributeList(data){ return data.map(function(row){ return Object.getOwnPropertyNames(row); }).reduce(function(a, b){return a.concat(b)},[]).filter( onlyUnique ); }" ADD_DATE="1509729320">prep.js</A>
<DT><A HREF="javascript: localStorage.setItem("pageNumber", 0);" ADD_DATE="1513109105">Start Count</A>
<DT><A HREF="javascript: if (typeof(Storage) !== "undefined") { var pageCount = Number(localStorage.getItem("pageNumber")) + 1; var getElements = document.getElementsByTagName(prompt("Which Element Would You Like To Select?","a")); var collection = Array.prototype.slice.call(getElements).map(elementAttributesToJSON); var page = "data-"+pageCount; localStorage.setItem(page, JSON.stringify(prepJSONforCSV(collection))); localStorage.setItem("pageNumber", pageCount); } else { console.log("This ain't gunna work."); };" ADD_DATE="1513107997">Scrape by Element Name</A>
<DT><A HREF="javascript: if (typeof(Storage) !== "undefined") { var pageCount = Number(localStorage.getItem("pageNumber")) + 1; var getElements = document.getElementsByClassName(prompt("Which Element Would You Like To Select?","a")); var collection = Array.prototype.slice.call(getElements).map(elementAttributesToJSON); var page = "data-"+pageCount; localStorage.setItem(page, JSON.stringify(prepJSONforCSV(collection))); localStorage.setItem("pageNumber", pageCount); } else { console.log("This ain't gunna work."); };" ADD_DATE="1513114256">Scrape Elements By Class Name</A>
<DT><A HREF="javascript: var dataKeys = Object.keys(localStorage).filter(function (d) { return d.indexOf("data-") > - 1; }); var flattened = dataKeys.reduce(function(a, b) {return a.concat(JSON.parse(localStorage.getItem(b)));},[]); downloadCSV(flattened, "download");" ADD_DATE="1513110026">Download Reports</A>
<DT><A HREF="javascript: var dataKeys = Object.keys(localStorage).filter(function(d){return d.indexOf("data-") > - 1;}); dataKeys.forEach(function(d){ localStorage.removeItem(d); localStorage.setItem("pageNumber", 0); });" ADD_DATE="1513110535">Delete Reports</A>
</DL><p>
</DL><p>
</DL><p>