Introduce Puphpeteer to an existing project
It is a memo for myself
in-container-terminal
$ composer require nesk/puphpeteer
$ npm install @nesk/puphpeteer puppeteer
Modify php.ini
if moss in memory
php.ini
memory_limit=1G
Dockerfile
FROM php:7.4.1-fpm
#abridgement
#Install puppeteer
RUN apt-get install -y nodejs 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 libgbm-dev wget
RUN npm install --global --unsafe-perm puppeteer
#Japanese font installation(If you do not enter this, the characters will be garbled on the Japanese site)
RUN apt-get install fonts-ipafont-gothic fonts-ipafont-mincho
#abridgement
example.png
is created by executing the following processpuppeteer
<?php
use Illuminate\Console\Command;
use Nesk\Puphpeteer\Puppeteer;
class Scraping
{
public function main()
{
$puppeteer = new Puppeteer;
$browser = $puppeteer->launch([
'args' => ['--no-sandbox', '--disable-setuid-sandbox']
]);
$page = $browser->newPage();
$page->goto('https://example.com');
$page->screenshot(['path' => 'example.png']);
$browser->close();
}
}
https://qiita.com/HeRo/items/9be64b559692e12cc109
Recommended Posts