puppeteer常规操作代码段

目录

一、获取界面二维码并打印处理

[二、等待某个元素消失后 再进行操作](#二、等待某个元素消失后 再进行操作)

三、使用puppteer点击搜索框,并输入内容后点击搜索


一、获取界面二维码并打印处理

javascript 复制代码
const puppeteer = require('puppeteer');

async function findQRCodeByXPath() {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  await page.goto('https://example.com');

  const xPath = '//img[contains(@class, "qrcode")]'; // 替换为实际的 XPath 表达式

  const qrcodeElements = await page.$x(xPath);

  if (qrcodeElements.length > 0) {
    const qrcodeHandle = await page.evaluateHandle((el) => el.getAttribute('src'), qrcodeElements[0]);
    const qrcodeData = await qrcodeHandle.jsonValue();

    console.log('二维码:', qrcodeData);
    // 在这里可以进行二维码的处理
  } else {
    console.log('没有找到二维码');
  }

  await browser.close();
}

findQRCodeByXPath();

二、等待某个元素消失后 再进行操作

javascript 复制代码
const puppeteer = require('puppeteer');

async function waitForPopupToDisappearAndScroll() {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  await page.goto('https://example.com');

  const popupSelector = '.popup'; // 替换为实际弹框元素的 CSS 选择器

  try {
    await page.waitForSelector(popupSelector, { timeout: 5000 });

    // 弹框出现,等待其消失
    await page.waitForSelector(popupSelector, { hidden: true, timeout: 5000 });

    console.log('弹框已消失');

    // 执行其他滑动界面操作
    await page.evaluate(() => {
      // 执行滑动操作的代码
    });
  } catch (error) {
    console.log('没有弹框');
  }

  await browser.close();
}

waitForPopupToDisappearAndScroll();

三、使用puppteer点击搜索框,并输入内容后点击搜索

javascript 复制代码
//1. 使用 Puppeteer 打开页面:

const puppeteer = require('puppeteer');

const main = async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com'); // 替换为目标网页 URL
  // 执行后续操作
};

main();


// 2. 点击搜索框并输入关键字:

// 在相应的选择器上执行点击操作
await page.click('input[name="search"]');
// 等待一定时间,确保搜索框被激活
await page.waitForTimeout(1000); // 1秒
// 在相应的选择器上执行输入操作
await page.type('input[name="search"]', '关键字');


// 3. 等待结果出现并滑动界面到底:

// 等待搜索结果出现,这里使用简单的等待时间,也可以根据实际情况使用更复杂的等待条件
await page.waitForTimeout(3000); // 3秒

while (true) {
  // 滑动到底部
  await page.evaluate(() => {
    window.scrollTo(0, document.body.scrollHeight);
  });

  // 等待一小段时间,让页面加载内容
  await page.waitForTimeout(1000); // 1秒

  // 检查是否已经滑动到底部(可以根据页面元素,如底部加载提示等判断)
  const isEndReached = await page.evaluate(() => {
    // 检查页面是否已经滑动到底部的逻辑,例如:
    // return document.querySelector('#load-more-button') === null;
    // 如果你有特定的元素表示已经到达底部,请适配对应的逻辑
  });

  if (isEndReached) {
    break;
  }
}
相关推荐
亿牛云爬虫专家1 个月前
使用 Puppeteer 绕过 Captcha:实现商家数据自动化采集
自动化·爬虫代理·验证码·puppeteer·代理ip·大众点评·captcha
亿牛云爬虫专家1 个月前
深入探讨 Puppeteer 如何使用 X 和 Y 坐标实现鼠标移动
爬虫代理·puppeteer·鼠标·代理ip·小红书·16yun·用户行为
亿牛云爬虫专家1 个月前
捕捉页面的关键元素:用CSS选择器与Puppeteer自动抓取
css·爬虫·爬虫代理·puppeteer·代理ip·机票·特价
亿牛云爬虫专家1 个月前
捕获抖音截图:如何用Puppeteer保存页面状态
爬虫·爬虫代理·puppeteer·抖音·亿牛云·代理ip·douyin
亿牛云爬虫专家1 个月前
Puppeteer教程:使用CSS选择器点击和爬取动态数据
javascript·css·爬虫·爬虫代理·puppeteer·代理ip
亿牛云爬虫专家1 个月前
如何在Puppeteer中实现表单自动填写与提交:问卷调查
javascript·爬虫·爬虫代理·puppeteer·问卷调查·代理ip·表单
亿牛云爬虫专家2 个月前
用Puppeteer点击与数据爬取:实现动态网页交互
javascript·爬虫·爬虫代理·puppeteer·数据·代理ip·16yun
黑金IT2 个月前
Puppeteer点击系统:解锁百度流量点击率提升的解决案例
nodejs·puppeteer·百度排名
黑金IT2 个月前
在浏览器中运行 Puppeteer:解锁新能力
nodejs·puppeteer·浏览器自动化
黑金IT2 个月前
在浏览器和Node.js环境中使用Puppeteer的Rollup与Webpack打包指南
前端·webpack·node.js·puppeteer·浏览器自动化