html-get 2.22.3 → 2.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/index.js +24 -1
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "html-get",
|
|
3
3
|
"description": "Get the HTML from any website, fine-tuned for correction & speed",
|
|
4
4
|
"homepage": "https://nicedoc.com/microlinkhq/html-get",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.24.0",
|
|
6
6
|
"types": "index.d.ts",
|
|
7
7
|
"main": "src/index.js",
|
|
8
8
|
"bin": {
|
package/src/index.js
CHANGED
|
@@ -155,6 +155,7 @@ const prerender = PCancelable.fn(
|
|
|
155
155
|
}
|
|
156
156
|
},
|
|
157
157
|
{
|
|
158
|
+
flattenShadowDOM: true,
|
|
158
159
|
timeout,
|
|
159
160
|
headers,
|
|
160
161
|
abortTypes
|
|
@@ -191,6 +192,11 @@ const prerender = PCancelable.fn(
|
|
|
191
192
|
|
|
192
193
|
const modes = { fetch, prerender }
|
|
193
194
|
|
|
195
|
+
const hasShadowDOM = $ =>
|
|
196
|
+
$('*')
|
|
197
|
+
.toArray()
|
|
198
|
+
.some(el => el.tagName?.includes('-'))
|
|
199
|
+
|
|
194
200
|
const isFetchMode = url => {
|
|
195
201
|
const parsedUrl = parseUrl(url)
|
|
196
202
|
return autoDomains.some(conditions =>
|
|
@@ -308,7 +314,24 @@ module.exports = PCancelable.fn(
|
|
|
308
314
|
|
|
309
315
|
onCancel(() => promise.cancel())
|
|
310
316
|
|
|
311
|
-
|
|
317
|
+
let { mode, html, $, ...payload } = await promise
|
|
318
|
+
|
|
319
|
+
if (mode === 'fetch' && getBrowserless && hasShadowDOM($)) {
|
|
320
|
+
debug('shadow DOM detected, retrying with prerender', { url: targetUrl })
|
|
321
|
+
const prerenderPromise = getContent(targetUrl, 'prerender', {
|
|
322
|
+
getBrowserless,
|
|
323
|
+
getTemporalFile,
|
|
324
|
+
gotOpts,
|
|
325
|
+
headers,
|
|
326
|
+
mutool,
|
|
327
|
+
puppeteerOpts,
|
|
328
|
+
rewriteUrls,
|
|
329
|
+
rewriteHtml,
|
|
330
|
+
toEncode
|
|
331
|
+
})
|
|
332
|
+
onCancel(() => prerenderPromise.cancel())
|
|
333
|
+
;({ mode, html, $, ...payload } = await prerenderPromise)
|
|
334
|
+
}
|
|
312
335
|
|
|
313
336
|
return Object.assign(payload, {
|
|
314
337
|
...serializeHtml($),
|