Advertisement
H0XH4

Instagram Follower Web Scrapper

Jul 13th, 2017
1,150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JSON 2.55 KB | None | 0 0
  1. /**
  2. *
  3. * Instagram Follower Web Scrapper
  4. *
  5. * Steps to use.
  6. * 1. Open instagram user's profile in browser https://www.instagram.com/tvfpitchers/
  7. * 2. Open console ( press F12 in chrome ) and paste all the code below
  8. * 3. Click on followers button and load all the followers
  9. * 4. Call function downloadAsCsv() by writing "downloadAsCsv()" in console to download csv file containing user's all the followers .
  10. *
  11. * @author : Hardik Sondagar <hardikmsondagar@gmail.com>
  12. *
  13. */
  14.  
  15. var followers = [];
  16.  
  17. (function(XHR) {
  18. "use strict";
  19.  
  20. var stats = [];
  21. var timeoutId = null;
  22.  
  23. var open = XHR.prototype.open;
  24. var send = XHR.prototype.send;
  25.  
  26. XHR.prototype.open = function(method, url, async, user, pass) {
  27. this._url = url;
  28. open.call(this, method, url, async, user, pass);
  29. };
  30.  
  31. XHR.prototype.send = function(data) {
  32. var self = this;
  33. var start;
  34. var oldOnReadyStateChange;
  35. var url = this._url;
  36. var match_url_string = 'query';
  37.  
  38. function onReadyStateChange() {
  39. if (self.readyState == 4 && url.indexOf(match_url_string) > -1) {
  40. var response = JSON.parse(self.response);
  41. followers = followers.concat(response.data.user.edge_followed_by.edges);
  42. }
  43.  
  44. if (oldOnReadyStateChange) {
  45. oldOnReadyStateChange();
  46. }
  47. }
  48.  
  49. if (!this.noIntercept) {
  50. start = new Date();
  51.  
  52. if (this.addEventListener) {
  53. this.addEventListener("readystatechange", onReadyStateChange, false);
  54. } else {
  55. oldOnReadyStateChange = this.onreadystatechange;
  56. this.onreadystatechange = onReadyStateChange;
  57. }
  58. }
  59.  
  60. send.call(this, data);
  61. }
  62. })(XMLHttpRequest);
  63.  
  64. function downloadAsCsv() {
  65.  
  66. var csvContent = "data:text/csv;charset=utf-8,";
  67.  
  68. var header = "Username,Full Name,Pic,Id\n";
  69. csvContent += header;
  70.  
  71.  
  72. followers.forEach(function(infoArray, index) {
  73.  
  74. var data = [];
  75.  
  76. for (var i in infoArray) {
  77. data.push(infoArray[i].username);
  78. data.push(infoArray[i].full_name);
  79. data.push(infoArray[i].profile_pic_url);
  80. data.push(infoArray[i].id);
  81. }
  82.  
  83. dataString = data.join(",");
  84. csvContent += index < followers.length ? dataString + "\n" : dataString;
  85.  
  86. });
  87.  
  88. var encodedUri = encodeURI(csvContent);
  89. var link = document.createElement("a");
  90. link.setAttribute("href", encodedUri);
  91.  
  92. var pathArray = window.location.pathname.split('/');
  93.  
  94. var milliseconds = (new Date).getTime();
  95. var filename = 'followers.' + milliseconds + '.csv';
  96.  
  97. if (pathArray && pathArray.length > 1) {
  98. filename = pathArray[1] + '.' + milliseconds + '.csv';
  99. }
  100. link.setAttribute("download", filename);
  101. document.body.appendChild(link); // Required for FF
  102.  
  103. link.click(); // This will download the data file named "my_data.csv".
  104.  
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement