Advertisement
Guest User

Untitled

a guest
May 24th, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. {
  2.  
  3. const recipeList = [];
  4.  
  5. const titles = Array
  6. .from(document.getElementsByTagName('h2'))
  7. .filter(h2 => {
  8. const as = Array.from(h2.getElementsByTagName('a'));
  9. return as.length === 1 && as[0].innerText === '';
  10. })
  11. .map(h2 => h2.innerText)
  12. .slice(4, 10);
  13.  
  14. const ingredients = Array
  15. .from(document.getElementsByTagName('ul'))
  16. .filter(ul => ul.previousSibling ? ul.previousSibling.innerText.toLowerCase() === 'ingredients' : true)
  17. .map(ul => Array.from(ul.getElementsByTagName('li')).map(li => li.innerText))
  18. .filter(lis => lis.length < 20);
  19.  
  20. const directions = Array
  21. .from(document.getElementsByTagName('ol'))
  22. .filter(ul => ul.previousSibling ? ul.previousSibling.innerText.toLowerCase() === 'directions' : true)
  23. .map(ul => Array.from(ul.getElementsByTagName('li')).map(li => li.innerText))
  24. .filter(lis => lis.length < 20);
  25.  
  26. console.log(titles);
  27. console.log(ingredients);
  28. console.log(directions);
  29.  
  30. for (let i = 0; i < titles.length; i++) {
  31. recipeList.push('이름\t' + titles[i]);
  32. ingredients[i].forEach(r => recipeList.push('재료\t' + r));
  33. directions[i].forEach(r => recipeList.push('절차\t' + r));
  34.  
  35. // console.log(i, titles[i]);
  36. // console.log(i, ingredients[i]);
  37. // console.log(i, directions[i]);
  38. }
  39.  
  40. const element = document.createElement('a');
  41. element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(recipeList.join('\n')));
  42. element.setAttribute('download', `${(new Date).valueOf() * 1000}.csv`);
  43. element.style.display = 'none';
  44. document.body.appendChild(element);
  45. element.click();
  46. document.body.removeChild(element);
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement