簡體   English   中英

在 Puppeteer 中將變量傳遞給 page.evaluate

[英]Pass variable to page.evaluate in Puppeteer

我遵循了 inte.net scraper 的教程,該教程將通過關鍵字找到網站並提取他們的電子郵件。 這是我所擁有的:

const puppeteer = require('puppeteer');

async function search(keyword, country) {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  // navigate to Google
  await page.goto('https://www.google.com');

  // type the keyword into the search box and submit the form
  await page.type('input[name="q"]', keyword);
  await page.evaluate(() => {
    // set the value of the "gl" query parameter to the specified country
    document.querySelector('input[name="gl"]').value = country;

    // submit the search form
    document.querySelector('form[name="f"]').submit();
  });

  // wait for the search results to load
  await page.waitForSelector('div.g');

  // extract the titles and URLs of the search results
  const results = await page.evaluate(() => {
    const links = Array.from(document.querySelectorAll('div.g a'));
    return links.map(a => ({
      title: a.innerText,
      url: a.href
    }));
  });

  // iterate over the search results
  for (const result of results) {
    // navigate to the result page
    await page.goto(result.url);

    // search for an email address on the page
    const email = await page.evaluate(() => {
      const emailRegex = /[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}/i;
      const text = document.body.innerText;
      const match = text.match(emailRegex);
      return match ? match[0] : null;
    });

    // print the search result and email address (if found)
    console.log(result.title);
    console.log(result.url);
    if (email) {
      console.log(`Email address: ${email}`);
    }
    console.log();
  }

  await browser.close();
}

// search for "cats" in the United States
search('macke', 'BiH');

當我在 cmd 提示符下運行 search.js 時,我收到以下消息:

C:\Users\38765\Documents\New folder>node search.js
C:\Users\38765\Documents\New folder\node_modules\puppeteer-core\lib\cjs\puppeteer\common\ExecutionContext.js:229
        throw new Error('Evaluation failed: ' + (0, util_js_1.getExceptionMessage)(exceptionDetails));
              ^

Error: Evaluation failed: ReferenceError: country is not defined
    at pptr://__puppeteer_evaluation_script__:3:56
    at ExecutionContext._ExecutionContext_evaluate (C:\Users\38765\Documents\New folder\node_modules\puppeteer-core\lib\cjs\puppeteer\common\ExecutionContext.js:229:15)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async ExecutionContext.evaluate (C:\Users\38765\Documents\New folder\node_modules\puppeteer-core\lib\cjs\puppeteer\common\ExecutionContext.js:107:16)
    at async search (C:\Users\38765\Documents\New folder\search.js:12:3)

Node.js v18.12.1

我為國家和一般關鍵字嘗試了不同的變量,但沒有用。 任何的想法?

我試圖從網站中提取 email 個地址,同時用國家過濾它們。 我收到一條我不確定的錯誤消息。

此代碼可以在 evaluate() 中pass a variable

    await page.evaluate((keyword) => {
        document.querySelector('input[name="q"]').value = keyword;
    }, keyword);

而這段代碼可以點擊Google Search按鈕並等待頁面加載。

    const waitForLoad = new Promise(resolve => page.on('load', () => resolve()));
    await page.evaluate(() => {
        document.querySelector('input[value="Google Search"]').click();
    });
    await waitForLoad;

這段代碼避免了 30 秒timeout error

(超時錯誤:超過 30000 毫秒的導航超時)。

    await page.setDefaultNavigationTimeout(0);

但我不知道如何切換國家選項。

這個完整的代碼。

const puppeteer = require('puppeteer');

async function search(keyword, country) {
    const browser = await puppeteer.launch({ headless: true });
    const page = await browser.newPage();
    await page.setDefaultNavigationTimeout(0);
    await page.goto('https://google.com');

    // Type "keyword" into the search bar
    await page.evaluate((keyword) => {
        document.querySelector('input[name="q"]').value = keyword;
    }, keyword);

    // Click on the "Google Search" button and wait for the page to load
    const waitForLoad = new Promise(resolve => page.on('load', () => resolve()));
    await page.evaluate(() => {
        document.querySelector('input[value="Google Search"]').click();
    });
    await waitForLoad;

    // extract the titles and URLs of the search results
    const results = await page.evaluate(() => {
        const links = Array.from(document.querySelectorAll('div.g a'));
        return links.map(a => ({
            title: a.innerText,
            url: a.href
        }));
    });
    console.log(results);
    // iterate over the search results
    for (const result of results) {
        // navigate to the result page
        await page.goto(result.url);

        // search for an email address on the page
        const email = await page.evaluate(() => {
            const emailRegex = /[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}/i;
            const text = document.body.innerText;
            const match = text.match(emailRegex);
            return match ? match[0] : null;
        });

        // print the search result and email address (if found)
        console.log(result.title);
        console.log(result.url);
        if (email) {
            console.log(`Email address: ${email}`);
        }
        console.log();
    }
    await browser.close();
}

// search for "cats" in the United States
search('macke', 'BiH')
    .then(() => console.log('Done'))
    .catch(error => console.log(error));

如果您想在搜索過程中查看發生了什么,可以關閉headless選項。 這將有助於調試您的代碼。

    const browser = await puppeteer.launch({ headless: false });

結果

$ node search.js
[
  {
    title: '\nAugust Macke - Wikipedia\nhttps://en.wikipedia.org › wiki › August_Macke',
    url: 'https://en.wikipedia.org/wiki/August_Macke'
  },
  {
    title: 'Meschede',
    url: 'http://en.wikipedia.org/wiki/Meschede,_Germany'
  },
  { title: 'Painting', url: 'http://en.wikipedia.org/wiki/Painting' },
  {
    title: 'Early life',
    url: 'https://en.wikipedia.org/wiki/August_Macke#Early_life'
  },
  {
    title: 'Selected paintings',
    url: 'https://en.wikipedia.org/wiki/August_Macke#Selected_paintings'
  },
  {
    title: 'Art market',
    url: 'https://en.wikipedia.org/wiki/August_Macke#Art_market'
  },
  {
    title: '\n' +
      'High Quality Reproductions Of August Macke paintings\n' +
      'https://www.augustmacke.org',
    url: 'https://www.augustmacke.org/'
  },
  {
    title: '\n' +
      'August Macke - 128 artworks - painting - WikiArt\n' +
      'https://www.wikiart.org › august-macke',
    url: 'https://www.wikiart.org/en/august-macke'
  },
  {
    title: 'Expressionism',
    url: 'http://wikiart.org/en/artists-by-art-movement/expressionism'
  },
  {
    title: 'Orphism (Simul...',
    url: 'http://wikiart.org/en/artists-by-art-movement/orphism-simultanism'
  },
  {
    title: 'Der Blaue Reiter (The Blue R...',
    url: 'http://wikiart.org/en/artists-by-painting-school/der-blaue-reiter-the-blue-rider'
  },
  {
    title: 'Kunstakademie Düsseldorf, Düs...',
    url: 'http://wikiart.org/en/artists-by-art-institution/kunstakademie-dusseldorf-dusseldorf-germany'
  },
  {
    title: '\n' +
      'English Translation of “Macke” - Collins Dictionary\n' +
      'https://www.collinsdictionary.com › german-english',
    url: 'https://www.collinsdictionary.com/us/dictionary/german-english/macke'
  },
  {
    title: 'August Macke | German artist - Encyclopedia Britannicahttps://www.britannica.com › ... › Sociology & Society',
    url: 'https://www.britannica.com/biography/August-Macke'
  },
  {
    title: 'Cached',
    url: 'https://webcache.googleusercontent.com/search?q=cache:fRmc7T5DxboJ:https://www.britannica.com/biography/August-Macke&cd=6&hl=en&ct=clnk&gl=us'
  },
  {
    title: 'Similar',
    url: 'https://www.google.com/search?q=related:https://www.britannica.com/biography/August-Macke+macke&sa=X&ved=2ahUKEwjrh_zJs_X7AhVihc4BHd_3DOAQH3oECFkQCw'
  },
  {
    title: 'August Macke - Wikipediahttps://en.wikipedia.org › wiki › August_Macke',
    url: 'https://en.wikipedia.org/wiki/August_Macke'
  },
  {
    title: 'Cached',
    url: 'https://webcache.googleusercontent.com/search?q=cache:V9gpo7IRurQJ:https://en.wikipedia.org/wiki/August_Macke&cd=10&hl=en&ct=clnk&gl=us'
  },
  {
    title: 'Similar',
    url: 'https://www.google.com/search?q=related:https://en.wikipedia.org/wiki/August_Macke+macke&sa=X&ved=2ahUKEwjrh_zJs_X7AhVihc4BHd_3DOAQH3oECFoQCw'
  },
  {
    title: '\n' +
      'Macke Definition & Meaning | Dictionary.com\n' +
      'https://www.dictionary.com › browse › macke',
    url: 'https://www.dictionary.com/browse/macke'
  },
  {
    title: '\n' +
      'August Macke - Google Arts & Culture\n' +
      'https://artsandculture.google.com › entity › m02_dfv',
    url: 'https://artsandculture.google.com/entity/august-macke/m02_dfv?hl=en'
  },
  {
    title: '\n' +
      'Macke Motors, Inc. | Chevrolet, Buick Dealer in Lake City, IA\n' +
      'https://www.mackemotors.com',
    url: 'https://www.mackemotors.com/'
  },
  {
    title: '\n' +
      'Spencer Macke Stats, News, Bio | ESPN\n' +
      'https://www.espn.com › mens-college-basketball › player',
    url: 'https://www.espn.com/mens-college-basketball/player/_/id/4592305/spencer-macke'
  },
  {
    title: '\n' +
      'August Macke | German artist - Encyclopedia Britannica\n' +
      'https://www.britannica.com › ... › Sociology & Society',
    url: 'https://www.britannica.com/biography/August-Macke'
  },
  {
    title: 'View 3+ more',
    url: 'https://www.google.com/search?q=macke&stick=H4sIAAAAAAAAAOOQMZJMTy3KTcxTKE8sSS1Kzs_JL1JILCrJLC4pjmLNTUzOTj3FyKGfq2-QXZJmeoqRE8Q0ik9JK4MKp5hVJZ1i5NZP1zc0Moo3ScoogCqyNM2wsDjFyA5iV5nlQZWb5uQBBblAzORci3QTE6hqQ8vcrGKoGpO8wtxfjJLuuNy1iBXisFtskgymH1uZ3lT4zxOXfnNa_XZX569mFpFA55oHAEU_jyXZAAA
A&sa=X&ved=2ahUKEwjrh_zJs_X7AhVihc4BHd_3DOAQzTooAHoECC0QAQ'
  },
  {
    title: 'Paul Klee',
    url: 'https://www.google.com/search?q=Paul+Klee&stick=H4sIAAAAAAAAAOOQUeLQz9U3yC5JMzWSTE8tyk3MUyhPLEktSs7PyS9SSCwqySwuKY5izU1Mzk49xQhXfIqRE8Q0ik9JK4MKp5hVJZ1i5NZP1zc0Moo3ScoogCqyNM2wsDjFyA5iV5nlQZWb5uQBBblAzORci3QTE6hqQ8vcrGKoGpO8wtxfjJLuuNy1iJUzILE0R8E7JzX1Fpskg-nHVqY3Ff7zxKXfnFa_3dX5q5l
FJNC55gEAOP_kJecAAAA&sa=X&ved=2ahUKEwjrh_zJs_X7AhVihc4BHd_3DOAQxA16BAgtEAQ'
  },
  {
    title: 'August Macke',
    url: 'https://www.google.com/search?q=August+Macke&stick=H4sIAAAAAAAAAOOQUeLUz9U3MIpPSSszkkxPLcpNzFMoTyxJLUrOz8kvUkgsKsksLimOYs1NTM5OPcXIAVKdXZJmeooRoREqnGJWlXSKkVs_Xd_QyCjeJCmjAKrI0jTDwuIUIzuIXWWWB1VumpMHFOQCMZNzLdJNTKCqDS1zs4qhakzyCnN_MUq643LXIlYex9L00uISBV-Q-26xSTKYfmxlelPhP09c-s1p9dtd
nb-aWUQCnWseAABKFQ4G6wAAAA&sa=X&ved=2ahUKEwjrh_zJs_X7AhVihc4BHd_3DOAQxA16BAgtEAY'
  },
  {
    title: 'Emil Nolde',
    url: 'https://www.google.com/search?q=Emil+Nolde&stick=H4sIAAAAAAAAAOOQUeLQz9U3SDGrSjKSTE8tyk3MUyhPLEktSs7PyS9SSCwqySwuKY5izU1Mzk49xQhWnF2SZnqKkRPENIpPSSuDCoPMOMXIrZ-ub2hkFG-SlFEAVWRpmmFhcYqRHcSuMsuDKjfNyQMKcoGYybkW6SYmUNWGlrlZxVA1JnmFub8YJd1xuWsRK5drbmaOgl9-TkrqLTZJBtOPrUxvKvzniUu_Oa1-u6
vzVzOLSKBzzQMAD10O-egAAAA&sa=X&ved=2ahUKEwjrh_zJs_X7AhVihc4BHd_3DOAQxA16BAgtEAg'
  },
  {
    title: 'Alexander Koester',
    url: 'https://www.google.com/search?q=Alexander+Koester&stick=H4sIAAAAAAAAAOOQUeLWT9c3NDKKN0nKKDCSTE8tyk3MUyhPLEktSs7PyS9SSCwqySwuKY5izU1Mzk49xcihn6tvkF2SZnqKkRPENIpPSSuDCqeYVSWdYkQ2EarI0jTDwuIUIzuIXWWWB1VumpMHFOQCMZNzLdJNTKCqDS1zs4qhakzyCnN_MUq643LXIlZBx5zUisS8lNQiBe_81GKggltskgymH1uZ3lT
4zxOXfnNa_XZX569mFpFA55oHAOmVJJPyAAAA&sa=X&ved=2ahUKEwjrh_zJs_X7AhVihc4BHd_3DOAQxA16BAgtEAo'
  },
  {
    title: 'Otto Kuhler',
    url: 'https://www.google.com/search?q=Otto+Kuhler&stick=H4sIAAAAAAAAAOOQUeLUz9U3sDTNsLAwkkxPLcpNzFMoTyxJLUrOz8kvUkgsKsksLimOYs1NTM5OPcXIAVKdXZJmeooRrNEoPiWtDCqcYlaVdIqRWz9d39DIKN4kKaMAqghs-ilGdhC7yiwPqtw0Jw8oyAViJudapJuYQFUbWuZmFUPVmOQV5v5ilHTH5a5FrNz-JSX5Ct6lGTmpRbfYJBlMP7Yyvanwnycu_ea0-
u2uzl_NLCKBzjUPAE4GCs7qAAAA&sa=X&ved=2ahUKEwjrh_zJs_X7AhVihc4BHd_3DOAQxA16BAgtEAw'
  },
  {
    title: 'Albrecht Dürer',
    url: 'https://www.google.com/search?q=Albrecht+D%C3%BCrer&stick=H4sIAAAAAAAAAOOQUWLXz9U3qDLLM5JMTy3KTcxTKE8sSS1Kzs_JL1JILCrJLC4pjmLNTUzOTj3FyAFSm12SZnqKkRPENIpPSSuDCqeYVSWdYuTWT9c3NDKKN0nKKIAqsjTNsLA4xQizB6rcNCcPKMgFYibnWqSbmEBVG1rmZhVD1ZjkFeb-YpR0x-WuRaz8jjlJRanJGSUKLof3FKUW3WKTZDD92Mr0p
sJ_nrj0m9Pqt7s6fzWziAQ61zwAANCPm_XsAAAA&sa=X&ved=2ahUKEwjrh_zJs_X7AhVihc4BHd_3DOAQxA16BAgtEA4'
  },
  {
    title: 'Otto Dix',
    url: 'https://www.google.com/search?q=Otto+Dix&stick=H4sIAAAAAAAAAOOQUeLQz9U3MM3JszCSTE8tyk3MUyhPLEktSs7PyS9SSCwqySwuKY5izU1Mzk49xQhWnF2SZnqKkRPENIpPSSuDCqeYVSWdYuTWT9c3NDKKN0nKKIAqsjTNsLA4xcgOYleZ5UGVg6w8xcgFYibnWqSbmEBVG1rmZhVD1ZjkFeb-YpR0x-WuRawc_iUl-QoumRW32CQZTD-2Mr2p8J8nLv3mtPrtrs5f
zSwigc41DwCET_td5gAAAA&sa=X&ved=2ahUKEwjrh_zJs_X7AhVihc4BHd_3DOAQxA16BAgtEBA'
  },
  {
    title: 'Feedback',
    url: 'https://www.google.com/search?q=macke&source=hp&ei=-c-XY4qFKqqf5NoPkMa56Ao&iflsig=AJiK0e8AAAAAY5feCT7FBLhaDMpd4BJL1G9H91u9-Jx2&ved=0ahUKEwjK5c7Js_X7AhWqD1kFHRBjDq0Q4dUDCAw&oq=&gs_lcp=Cgdnd3Mtd2l6EAxQAFgAYABoAHAAeACAAQCIAQCSAQCYAQA&sclient=gws-wiz#'
  },
  {
    title: 'August Macke\nGerman painter',
    url: 'https://www.google.com/search?q=August+Macke&si=AC1wQDDpGOot2oszezPNwprLIg5ABjqHZ3YIIcGrpvlRyk10Fo819Bg3DsyUVZZAP4UNiuRPfkAjNm_M3TeQKkS2u3Cfjy8rHdYBQwwLdUJ557rF7VcAg6yXjqynL0uOAO2jszb-XhMCEcyJ5kKSE21BimWiGhM31JqRAeQQoz600d8pPOXalHc%3D&sa=X&ved=2ahUKEwjrh_zJs_X7AhVihc4BHd_3DOAQ6RN6BA
gwEAE'
  }
]
August Macke - Wikipedia
https://en.wikipedia.org › wiki › August_Macke
https://en.wikipedia.org/wiki/August_Macke

Meschede
http://en.wikipedia.org/wiki/Meschede,_Germany

Painting
http://en.wikipedia.org/wiki/Painting

Early life
https://en.wikipedia.org/wiki/August_Macke#Early_life

Selected paintings
https://en.wikipedia.org/wiki/August_Macke#Selected_paintings

Art market
https://en.wikipedia.org/wiki/August_Macke#Art_market


High Quality Reproductions Of August Macke paintings
https://www.augustmacke.org
https://www.augustmacke.org/


August Macke - 128 artworks - painting - WikiArt
https://www.wikiart.org › august-macke
https://www.wikiart.org/en/august-macke

Expressionism
http://wikiart.org/en/artists-by-art-movement/expressionism

Orphism (Simul...
http://wikiart.org/en/artists-by-art-movement/orphism-simultanism

Der Blaue Reiter (The Blue R...
http://wikiart.org/en/artists-by-painting-school/der-blaue-reiter-the-blue-rider

Kunstakademie Düsseldorf, Düs...
http://wikiart.org/en/artists-by-art-institution/kunstakademie-dusseldorf-dusseldorf-germany


Macke Motors, Inc. | Chevrolet, Buick Dealer in Lake City, IA
https://www.mackemotors.com
https://www.mackemotors.com/

Show
https://www.mackemotors.com/new-vehicles/

Used Vehicles
https://www.mackemotors.com/used-vehicles/

Meet Our Staff
https://www.mackemotors.com/about-us/staff/

Schedule Service
https://www.mackemotors.com/service/serviceapptform/

August Macke | German artist - Encyclopedia Britannicahttps://www.britannica.com › ... › Sociology & Society
https://www.britannica.com/biography/August-Macke

Cached
https://webcache.googleusercontent.com/search?q=cache:fRmc7T5DxboJ:https://www.britannica.com/biography/August-Macke&cd=6&hl=en&ct=clnk&gl=us

Similar
https://www.google.com/search?q=related:https://www.britannica.com/biography/August-Macke+macke&sa=X&ved=2ahUKEwjBrcGotfX7AhWuUaQEHelJDGwQH3oECDgQCw

August Macke - Wikipediahttps://en.wikipedia.org › wiki › August_Macke
https://en.wikipedia.org/wiki/August_Macke

Cached
https://webcache.googleusercontent.com/search?q=cache:V9gpo7IRurQJ:https://en.wikipedia.org/wiki/August_Macke&cd=10&hl=en&ct=clnk&gl=us

Similar
https://www.google.com/search?q=related:https://en.wikipedia.org/wiki/August_Macke+macke&sa=X&ved=2ahUKEwjBrcGotfX7AhWuUaQEHelJDGwQH3oECEoQCw


English Translation of “Macke” - Collins Dictionary
https://www.collinsdictionary.com › german-english
https://www.collinsdictionary.com/us/dictionary/german-english/macke


August Macke - Google Arts & Culture
https://artsandculture.google.com › entity › m02_dfv
https://artsandculture.google.com/entity/august-macke/m02_dfv?hl=en


August Macke | German artist - Encyclopedia Britannica
https://www.britannica.com › ... › Sociology & Society
https://www.britannica.com/biography/August-Macke


Spencer Macke Stats, News, Bio | ESPN
https://www.espn.com › mens-college-basketball › player
https://www.espn.com/mens-college-basketball/player/_/id/4592305/spencer-macke


Macke - Page 77 - Google Books Result
https://books.google.com › books
https://books.google.com/books?id=eO54KwPMfggC&pg=PA77&lpg=PA77&dq=macke&source=bl&ots=zwex5_ZREj&sig=ACfU3U0IygUTrXIoDLN6VrtKfImYl7l1XQ&hl=en&sa=X&ved=2ahUKEwjBrcGotfX7AhWuUaQEHelJDGwQ6AF6BAhAEAM

Anna Meseure
https://www.google.com/search?tbm=bks&q=inauthor:%22Anna+Meseure%22&sa=X&ved=2ahUKEwjBrcGotfX7AhWuUaQEHelJDGwQ9Ah6BAhAEAY

View 3+ more
https://www.google.com/search?q=macke&stick=H4sIAAAAAAAAAOOQMZJMTy3KTcxTKE8sSS1Kzs_JL1JILCrJLC4pjmLNTUzOTj3FyKGfq2-QXZJmeoqRE8Q0ik9JK4MKp5hVJZ1i5NZP1zc0Moo3ScoogCqyNM2wsDjFyA5iV5nlQZWb5uQBBblAzORci3QTE6hqQ8vcrGKoGpO8wtxfjJLuuNy1iBXisFtskgymH1uZ3lT4zxOXfnNa_XZX569mFpFA55oHAEU_jyXZAAAA&sa=X&ved
=2ahUKEwjBrcGotfX7AhWuUaQEHelJDGwQzTooAHoECCMQAQ

Paul Klee
https://www.google.com/search?q=Paul+Klee&stick=H4sIAAAAAAAAAOOQUeLQz9U3yC5JMzWSTE8tyk3MUyhPLEktSs7PyS9SSCwqySwuKY5izU1Mzk49xQhXfIqRE8Q0ik9JK4MKp5hVJZ1i5NZP1zc0Moo3ScoogCqyNM2wsDjFyA5iV5nlQZWb5uQBBblAzORci3QTE6hqQ8vcrGKoGpO8wtxfjJLuuNy1iJUzILE0R8E7JzX1Fpskg-nHVqY3Ff7zxKXfnFa_3dX5q5lFJNC55gEAO
P_kJecAAAA&sa=X&ved=2ahUKEwjBrcGotfX7AhWuUaQEHelJDGwQxA16BAgjEAQ

August Macke
https://www.google.com/search?q=August+Macke&stick=H4sIAAAAAAAAAOOQUeLUz9U3MIpPSSszkkxPLcpNzFMoTyxJLUrOz8kvUkgsKsksLimOYs1NTM5OPcXIAVKdXZJmeooRoREqnGJWlXSKkVs_Xd_QyCjeJCmjAKrI0jTDwuIUIzuIXWWWB1VumpMHFOQCMZNzLdJNTKCqDS1zs4qhakzyCnN_MUq643LXIlYex9L00uISBV-Q-26xSTKYfmxlelPhP09c-s1p9dtdnb-aWUQCnW
seAABKFQ4G6wAAAA&sa=X&ved=2ahUKEwjBrcGotfX7AhWuUaQEHelJDGwQxA16BAgjEAY

Emil Nolde
https://www.google.com/search?q=Emil+Nolde&stick=H4sIAAAAAAAAAOOQUeLQz9U3SDGrSjKSTE8tyk3MUyhPLEktSs7PyS9SSCwqySwuKY5izU1Mzk49xQhWnF2SZnqKkRPENIpPSSuDCoPMOMXIrZ-ub2hkFG-SlFEAVWRpmmFhcYqRHcSuMsuDKjfNyQMKcoGYybkW6SYmUNWGlrlZxVA1JnmFub8YJd1xuWsRK5drbmaOgl9-TkrqLTZJBtOPrUxvKvzniUu_Oa1-u6vzVzOLSKBz
zQMAD10O-egAAAA&sa=X&ved=2ahUKEwjBrcGotfX7AhWuUaQEHelJDGwQxA16BAgjEAg

Alexander Koester
https://www.google.com/search?q=Alexander+Koester&stick=H4sIAAAAAAAAAOOQUeLWT9c3NDKKN0nKKDCSTE8tyk3MUyhPLEktSs7PyS9SSCwqySwuKY5izU1Mzk49xcihn6tvkF2SZnqKkRPENIpPSSuDCqeYVSWdYkQ2EarI0jTDwuIUIzuIXWWWB1VumpMHFOQCMZNzLdJNTKCqDS1zs4qhakzyCnN_MUq643LXIlZBx5zUisS8lNQiBe_81GKggltskgymH1uZ3lT4zxOXfnNa_
XZX569mFpFA55oHAOmVJJPyAAAA&sa=X&ved=2ahUKEwjBrcGotfX7AhWuUaQEHelJDGwQxA16BAgjEAo

Otto Kuhler
https://www.google.com/search?q=Otto+Kuhler&stick=H4sIAAAAAAAAAOOQUeLUz9U3sDTNsLAwkkxPLcpNzFMoTyxJLUrOz8kvUkgsKsksLimOYs1NTM5OPcXIAVKdXZJmeooRrNEoPiWtDCqcYlaVdIqRWz9d39DIKN4kKaMAqghs-ilGdhC7yiwPqtw0Jw8oyAViJudapJuYQFUbWuZmFUPVmOQV5v5ilHTH5a5FrNz-JSX5Ct6lGTmpRbfYJBlMP7Yyvanwnycu_ea0-u2uzl_NLCK
BzjUPAE4GCs7qAAAA&sa=X&ved=2ahUKEwjBrcGotfX7AhWuUaQEHelJDGwQxA16BAgjEAw

Albrecht Dürer
https://www.google.com/search?q=Albrecht+D%C3%BCrer&stick=H4sIAAAAAAAAAOOQUWLXz9U3qDLLM5JMTy3KTcxTKE8sSS1Kzs_JL1JILCrJLC4pjmLNTUzOTj3FyAFSm12SZnqKkRPENIpPSSuDCqeYVSWdYuTWT9c3NDKKN0nKKIAqsjTNsLA4xQizB6rcNCcPKMgFYibnWqSbmEBVG1rmZhVD1ZjkFeb-YpR0x-WuRaz8jjlJRanJGSUKLof3FKUW3WKTZDD92Mr0psJ_nrj0m9P
qt7s6fzWziAQ61zwAANCPm_XsAAAA&sa=X&ved=2ahUKEwjBrcGotfX7AhWuUaQEHelJDGwQxA16BAgjEA4

Otto Dix
https://www.google.com/search?q=Otto+Dix&stick=H4sIAAAAAAAAAOOQUeLQz9U3MM3JszCSTE8tyk3MUyhPLEktSs7PyS9SSCwqySwuKY5izU1Mzk49xQhWnF2SZnqKkRPENIpPSSuDCqeYVSWdYuTWT9c3NDKKN0nKKIAqsjTNsLA4xcgOYleZ5UGVg6w8xcgFYibnWqSbmEBVG1rmZhVD1ZjkFeb-YpR0x-WuRawc_iUl-QoumRW32CQZTD-2Mr2p8J8nLv3mtPrtrs5fzSwigc41Dw
CET_td5gAAAA&sa=X&ved=2ahUKEwjBrcGotfX7AhWuUaQEHelJDGwQxA16BAgjEBA

Feedback
https://www.google.com/search?q=macke&source=hp&ei=zNGXY_7aGZagiLMPp9i3oAw&iflsig=AJiK0e8AAAAAY5ff3Op6OxuSNjVB1oIwnqx_DSEYELwZ&ved=0ahUKEwj-8JWotfX7AhUWEGIAHSfsDcQQ4dUDCAs&oq=&gs_lcp=Cgdnd3Mtd2l6EAxQAFgAYABoAHAAeACAAQCIAQCSAQCYAQA&sclient=gws-wiz#

Done

參考

使用 Puppeteer 從 Node.js 控制 Chrome

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM