一.抓取数组中的所有图片

爬虫小技巧 - 图1
爬虫小技巧 - 图2

1.先获取到所有的图片

  1. var photo=$(item).find(".dynamic-album-desc a img");

2.对这个对象进行遍历

使用map方法更方便

  1. var urls=photo.map((index,item)=>{
  2. return $(item).attr("src")
  3. })

3.通过展开的方法将对象添加到一个数组中

  1. links.push({
  2. urls:[...urls]
  3. })

爬虫小技巧 - 图3

二.多个相同的模块需要遍历

  1. const puppeteer=require('puppeteer');
  2. const url="https://www.duitang.com/";
  3. async function pic(){
  4. const browser=await puppeteer.launch();
  5. const page=await browser.newPage();
  6. await page.goto(url,{
  7. waitUntil:'networkidle2'
  8. });
  9. await page.waitFor(2000)
  10. await page.hover(".content-detail .dynamic-feed-item")
  11. let res=await page.evaluate(()=>{
  12. var $=window.jQuery;
  13. var items=$(".content-detail .dynamic-feed-item"); //抓取你要遍历的那一块
  14. var links=[];
  15. if(items.length>0){
  16. items.each((index,item)=>{
  17. var id=$(item).attr("data-id");
  18. var img=$(item).find(".user-info a img").attr("src");
  19. var username=$(item).find(".user-desc .username").html();
  20. var author=$(item).find(".dynamic-album-desc").html();
  21. var photo=$(item).find(".dynamic-multi-img-container a img");
  22. var urls=photo.map((index,item)=>{
  23. return $(item).attr("src")
  24. })
  25. var like=$(item).find(".de-action .like-action span").text();
  26. var favorite=$(item).find(".de-action .favorite-action span").text();
  27. links.push({
  28. id,
  29. img,
  30. username,
  31. author,
  32. like,
  33. favorite,
  34. urls:[...urls],
  35. })
  36. })
  37. }
  38. return links;
  39. })
  40. browser.close();
  41. return res
  42. }
  43. module.exports=pic;

爬虫小技巧 - 图4

三。只有一个模块不需要遍历

  1. const puppeteer=require('puppeteer');
  2. async function detail(url){
  3. const browser=await puppeteer.launch();
  4. const page=await browser.newPage();
  5. await page.goto(url,{
  6. waitUntil:'networkidle2'
  7. });
  8. await page.waitFor(2000)
  9. let res=await page.evaluate(()=>{ //不用再去抓取某一块,直接取数据
  10. var $=window.jQuery;
  11. var img=$(".link img").attr("src");
  12. var name=$(".author-info .name").text();
  13. var author=$(".atlas-desc").text();
  14. var photo=$(".atlas-item img");
  15. var urls=photo.map((index,item)=>{
  16. return $(item).attr("src")
  17. })
  18. var like=$(".like span").text();
  19. var favorite=$(".collection span").text();
  20. var Img=$(".sender-avatar img");
  21. var value=$("#dt-search #type").attr("value");
  22. var keyword=$("#dt-search .ipt").attr("name")
  23. var url=Img.map((index,item)=>{
  24. return $(item).attr("src")
  25. })
  26. return{
  27. img,
  28. name,
  29. author,
  30. like,
  31. favorite,
  32. urls:[...urls],
  33. url:[...url],
  34. value,
  35. keyword
  36. }
  37. })
  38. browser.close();
  39. return res
  40. }
  41. module.exports=detail;