Node.js puppeteer - Преобразование извлеченной строки href - PullRequest
0 голосов
/ 28 августа 2018

Я использую node.js и puppeteer для получения некоторых данных. ... теперь я хочу преобразовать один из моих выходов. Вместо того, чтобы получить href как это:

Консоль

myURL/data/1344888/156999-18-1605-index.html    

Желаемый вывод должен иметь такую ​​структуру:

myURL/data/1344888/156999181605/156999-18-1605.txt

Как видите ... первая часть идентична:

myURL/data/1344888/

... средняя часть не должна иметь дефиса и является первой частью последней части:

                  /156999181605/

... и в последней части ... -index.html следует заменить на .txt

                               /156999-18-1605.txt

Вот так я получаю оригинальную ссылку:

const puppeteer = require('puppeteer');
const fs = require('fs-extra');

(async function main() {
  try {

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

    await page.goto('myURL', {waitUntil: 'load'});

    const table = await page.waitForSelector('#formDiv > div > table');

    const link = await page.$('#formDiv > div > table > tbody > tr:nth-child(5) > td:nth-child(3) > a');
    const linkHref = await page.evaluate( link => link.href, link );

    console.log(linkHref);      

    ...


  } catch (e) {
    console.log('our error', e);
  }

})();

Как это могло быть сделано?

Консоль

myURL/data/1344888/156999-18-1605-index.html    

Желаемый вывод должен:

myURL/data/1344888/156999181605/156999-18-1605.txt

1 Ответ

0 голосов
/ 28 августа 2018

Вы можете использовать следующее решение для преобразования вашего исходного URL в желаемый формат:

const original_url = 'myURL/data/1344888/156999-18-1605-index.html';
const modified_url = original_url.replace( /(\d+-\d+-\d+-index.html)/, match => match.replace( /\D/g, '' ) + '/' + match.replace( '-index.html', '.txt' ) );

console.log( original_url ); // myURL/data/1344888/156999-18-1605-index.html
console.log( modified_url ); // myURL/data/1344888/156999181605/156999-18-1605.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...