@dim12ka

Как эффективно получить данные со страницы из элемента script?

Как с помощью google apps script спарсить данные с блока сайта <script type="application/ld+json"> в таблицу google sheets?

Пример кода страницы сайта:

<script async="" defer="" src="https://www.lnwshop.com/system/application/modules/lnwshopweb/_js/cookie_policy.js?t=20221021"></script>
<link rel="preconnect" href="https://fy-up.lnwfile.com">
<script type="application/ld+json">
{
    "@context": "https://schema.org/",
    "@type": "Product",
    "name": "[คิโอริ] สบู่ถังเช่าผสมทองคำ (ลดริ้วรอย)",
    "image": [
        "https://fy.lnwfile.com/_/fy/_raw/yt/mk/d6.jpg",
        "https://fy.lnwfile.com/_/fy/_raw/1b/3a/2q.jpg"
    ],
    "description": "REG.No.10-1-5856590\nสบู่ถังเช่า ดูอ่อนวัย เพื่อผิวขาว แบบออร่า\nผสานคุณค่าทองคำ และเห็ดอายุวัฒนะอันเล",
    "sku": "33810311",
    "category": "สุขภาพและความงาม (Health & Beauty) > สบู่ (Soap) > สบู่ก้อน (Solid Soap)",
    "offers": {
        "@type": "Offer",
        "priceCurrency": "THB",
        "url": "https://www.pdfah.com/product/8/%E0%B8%84%E0%B8%B4%E0%B9%82%E0%B8%AD%E0%B8%A3%E0%B8%B4-%E0%B8%AA%E0%B8%9A%E0%B8%B9%E0%B9%88%E0%B8%96%E0%B8%B1%E0%B8%87%E0%B9%80%E0%B8%8A%E0%B9%88%E0%B8%B2%E0%B8%9C%E0%B8%AA%E0%B8%A1%E0%B8%97%E0%B8%AD%E0%B8%87%E0%B8%84%E0%B8%B3-%E0%B8%A5%E0%B8%94%E0%B8%A3%E0%B8%B4%E0%B9%89%E0%B8%A7%E0%B8%A3%E0%B8%AD%E0%B8%A2",
        "price": "52.00",
        "priceValidUntil": "2022-11-30",
        "itemCondition": "https://schema.org/NewCondition",
        "availability": "https://schema.org/InStock"
    }
}
</script>
  • Вопрос задан
  • 154 просмотра
Пригласить эксперта
Ответы на вопрос 2
oshliaer
@oshliaer Куратор тега Google Apps Script
Google Products Expert
Google Apps Script не подготовлен для Cheerio.

Следует избегать загрузки этого модуля.

Пример без него.

const url = 'https://www.pdfah.com/product/4944/hylo-gel-lubricating-eyes-drops-%E0%B8%99%E0%B9%89%E0%B8%B3%E0%B8%95%E0%B8%B2%E0%B9%80%E0%B8%97%E0%B8%B5%E0%B8%A2%E0%B8%A1%E0%B8%8A%E0%B8%99%E0%B8%B4%E0%B8%94%E0%B9%80%E0%B8%88%E0%B8%A5-10ml-300%E0%B8%AB%E0%B8%A2%E0%B8%94';

function getData() {
  const data = UrlFetchApp.fetch(url);
  const content = data.getContentText();
  const exec = /application\/ld\+json">(.*?)<\/script>/gi
    .exec(content.replace(/[\r\n]+/g, ' '));
  if (exec) {
    const product = JSON.parse(exec[1]);
    console.log(product);
  }
}


В Таблице https://docs.google.com/spreadsheets/d/1DQPeBVHMeQ...
Ответ написан
Комментировать
@dim12ka Автор вопроса
Спасибо вам за ответ.
Есть несколько вопросов:

1) эта строка кода регулярное выражение?
const exec = /application\/ld\+json">(.*?)<\/script>/gi
    .exec(content.replace(/[\r\n]+/g, ' '));


2) почему переменная exec в условие IF?

3) Какую литература по рекомендуете для изучения apps script?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы