使用puppeteer
时间: 2024-02-21 09:23:50 浏览: 29
Puppeteer和Selenium都是用于自动化测试的工具,但它们的实现方式不同。Puppeteer使用Headless Chrome来模拟用户在浏览器中的操作,而Selenium则使用WebDriver驱动不同的浏览器。Puppeteer的核心特点是它的速度和对Chrome DevTools协议的完全支持,而Selenium有着更广泛的浏览器支持。两者都有其优点和局限性,根据具体的需求可以灵活选择使用哪个工具。
相关问题
nodejs使用puppeteer
nodejs使用puppeteer是通过调用puppeteer库来实现的。Puppeteer是一个基于Chrome浏览器内核的nodejs爬虫包,它可以模拟用户操作界面,包括页面滚动、按钮点击、导航跳转等功能。你可以通过以下步骤来实现nodejs使用puppeteer:
1. 首先,安装puppeteer库。你可以通过全局安装或者当前项目安装的方式进行安装。全局安装的命令是:npm -g install puppeteer;当前项目安装的命令是:npm -S install puppeteer。
2. 创建一个async函数,例如puppeteerTest,在函数内部进行puppeteer操作。
3. 在puppeteerTest函数中,你可以设置一些选项,例如设置用户代理(user agent),可以通过args参数来传递。例如,你可以设置options对象,其中headless属性用于控制是否以无头模式运行,args属性用于设置命令行参数,包括设置用户代理。
4. 使用require语句引入puppeteer库,并通过puppeteer.launch(options)方法来启动一个浏览器实例。
5. 调用browser.newPage()方法创建一个新的页面实例。
6. 可以使用page.setViewport()方法设置页面的视口大小。
7. 使用page.goto(url)方法跳转到指定的URL地址。
下面是一个示例代码:
```javascript
const puppeteerTest = async () => {
const user_agent = "--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36";
const options = {
headless: false, // 是否以无头模式运行
args: ['--no-sandbox', user_agent] // 设置命令行参数,包括设置用户代理
};
const puppeteer = require('puppeteer');
const browser = await puppeteer.launch(options);
const page = await browser.newPage();
await page.setViewport({ width: 1020, height: 900 }); // 设置页面视口大小
await page.goto("https://www.baidu.com"); // 跳转到指定的URL地址
};
puppeteerTest();
```
LINUX如何安装浏览器才能使用puppeteer
在Linux上安装浏览器可以按照以下步骤进行:
1. 首先安装Chrome浏览器或Chromium浏览器。可以通过以下命令安装:
- Debian、Ubuntu等基于Debian的系统:
```
sudo apt-get update
sudo apt-get install chromium-browser
```
- CentOS、Fedora等基于RHEL的系统:
```
sudo yum install chromium
```
- Arch Linux:
```
sudo pacman -S chromium
```
2. 安装Puppeteer依赖。Puppeteer需要安装一些依赖才能正常运行,可以通过以下命令安装:
- Debian、Ubuntu等基于Debian的系统:
```
sudo apt-get install gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
```
- CentOS、Fedora等基于RHEL的系统:
```
sudo yum install pango.x86_64 libXcomposite.x86_64 libXdamage.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 ipa-gothic-fonts.noarch xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc
```
3. 安装Puppeteer。可以通过npm安装Puppeteer:
```
npm i puppeteer
```
安装完成后,就可以在代码中使用Puppeteer控制浏览器了。