• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

fetch daje inny yinik niż kod źródłowy na stronie

Object Storage Arubacloud
0 głosów
200 wizyt
pytanie zadane 29 września 2021 w JavaScript przez Maxxxii Obywatel (1,260 p.)

Cześć,

Ponownie spotykam się z problemem, że wynik fetch-a jest inny niż html na stronie. Mam wrażenie że jest to spowodowane tym "We're sorry but ils-lookup doesn't work properly without JavaScript enabled. Please enable it to continue.", lecz nie jestem pewien. Jeżeli chodzi o to to jak zezwolić na działanie JavaScript, bo bardzo to ogranicza pracę.

Link do strony: https://ils-frequency-lookup.com/EPGD

wynik fetch-a:

<!DOCTYPE html><html ⚡ lang="en"><head><script async src="https://www.googletagmanager.com/gtag/js?id=G-51LVFRKJX9"></script><script>window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());

      gtag('config', 'G-51LVFRKJX9');</script><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.png"><title>ils-lookup</title><link href="/css/app.d5c7545e.css" rel="preload" as="style"><link href="/css/chunk-vendors.188e04d6.css" rel="preload" as="style"><link href="/js/app.6b9ee7bb.js" rel="preload" as="script"><link href="/js/chunk-vendors.bf0ef3a7.js" rel="preload" as="script"><link href="/css/chunk-vendors.188e04d6.css" rel="stylesheet"><link href="/css/app.d5c7545e.css" rel="stylesheet"><link rel="icon" type="image/png" sizes="32x32" href="/../public/img/icons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/../public/img/icons/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#v"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="default"><meta name="apple-mobile-web-app-title" content="ILS Lookup"><meta name="msapplication-TileColor" content="#000000"></head><body><noscript><strong>We're sorry but ils-lookup doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/js/chunk-vendors.bf0ef3a7.js"></script><script src="/js/app.6b9ee7bb.js"></script></body></html>

Pozdrawiam

1 odpowiedź

0 głosów
odpowiedź 29 września 2021 przez niezalogowany

Jeśli korzystasz z node'a - użyj puppeterea

komentarz 29 września 2021 przez Maxxxii Obywatel (1,260 p.)
widzę na ich stronie tylko przykłady zapisania w pdf-ie i zrobienia screena. jak to wygląda z prostym zapisaniem html-a do zmiennej?
komentarz 30 września 2021 przez niezalogowany
komentarz 30 września 2021 przez Maxxxii Obywatel (1,260 p.)

mój kod:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://ils-frequency-lookup.com/EPWA');
  await page.content();
  await browser.close();
  console.log(page);
})();

wynik:

<ref *1> Page {        
  eventsMap: Map(0) {},
  emitter: {
    all: Map(0) {},
    on: [Function: on],
    off: [Function: off],
    emit: [Function: emit]
  },
  _closed: false,
  _timeoutSettings: TimeoutSettings {
    _defaultTimeout: null,
    _defaultNavigationTimeout: null
  },
  _pageBindings: Map(0) {},
  _javascriptEnabled: true,
  _workers: Map(0) {},
  _fileChooserInterceptors: Set(0) {},
  _userDragInterceptionEnabled: false,
  _client: CDPSession {
    eventsMap: Map(29) {
      'Fetch.requestPaused' => [Array],
      'Fetch.authRequired' => [Array],
      'Network.requestWillBeSent' => [Array],
      'Network.requestServedFromCache' => [Array],
      'Network.responseReceived' => [Array],
      'Network.loadingFinished' => [Array],
      'Network.loadingFailed' => [Array],
      'Page.frameAttached' => [Array],
      'Page.frameNavigated' => [Array],
      'Page.navigatedWithinDocument' => [Array],
      'Page.frameDetached' => [Array],
      'Page.frameStoppedLoading' => [Array],
      'Runtime.executionContextCreated' => [Array],
      'Runtime.executionContextDestroyed' => [Array],
      'Runtime.executionContextsCleared' => [Array],
      'Page.lifecycleEvent' => [Array],
      'Target.attachedToTarget' => [Array],
      'Target.detachedFromTarget' => [Array],
      'Page.domContentEventFired' => [Array],
      'Page.loadEventFired' => [Array],
      'Runtime.consoleAPICalled' => [Array],
      'Runtime.bindingCalled' => [Array],
      'Page.javascriptDialogOpening' => [Array],
      'Runtime.exceptionThrown' => [Array],
      'Inspector.targetCrashed' => [Array],
      'Performance.metrics' => [Array],
      'Log.entryAdded' => [Array],
      'Page.fileChooserOpened' => [Array],
      Symbol(CDPSession.Disconnected) => []
    },
    emitter: {
      all: [Map],
      on: [Function: on],
      off: [Function: off],
      emit: [Function: emit]
    },
    _callbacks: Map(0) {},
    _connection: null,
    _targetType: 'page',
    _sessionId: '4F342D997571755772BA4CC9BFBF6A6C'
  },
  _target: Target {
    _targetInfo: {
      targetId: 'B9C06F56A7BF7A5B1352D05EA322BB69',
      type: 'page',
      title: 'https://ils-frequency-lookup.com/EPWA',
      url: 'https://ils-frequency-lookup.com/EPWA',
      attached: true,
      canAccessOpener: false,
      browserContextId: 'D2C2B09253497A9761266285997B3E14'
    },
    _browserContext: BrowserContext {
      eventsMap: Map(0) {},
      emitter: [Object],
      _connection: [Connection],
      _browser: [Browser],
      _id: null
    },
    _targetId: 'B9C06F56A7BF7A5B1352D05EA322BB69',
    _sessionFactory: [Function (anonymous)],
    _ignoreHTTPSErrors: false,
    _defaultViewport: { width: 800, height: 600 },
    _pagePromise: Promise { [Circular *1] },
    _workerPromise: null,
    _initializedCallback: [Function (anonymous)],
    _initializedPromise: Promise { true },
    _closedCallback: [Function (anonymous)],
    _isClosedPromise: Promise { <pending> },
    _isInitialized: true
  },
  _keyboard: Keyboard {
    _modifiers: 0,
    _pressedKeys: Set(0) {},
    _client: CDPSession {
      eventsMap: [Map],
      emitter: [Object],
      _callbacks: Map(0) {},
      _connection: null,
      _targetType: 'page',
      _sessionId: '4F342D997571755772BA4CC9BFBF6A6C'
    }
  },
  _mouse: Mouse {
    _x: 0,
    _y: 0,
    _button: 'none',
    _client: CDPSession {
      eventsMap: [Map],
      emitter: [Object],
      _callbacks: Map(0) {},
      _connection: null,
      _targetType: 'page',
      _sessionId: '4F342D997571755772BA4CC9BFBF6A6C'
    },
    _keyboard: Keyboard {
      _modifiers: 0,
      _pressedKeys: Set(0) {},
      _client: [CDPSession]
    }
  },
  _touchscreen: Touchscreen {
    _client: CDPSession {
      eventsMap: [Map],
      emitter: [Object],
      _callbacks: Map(0) {},
      _connection: null,
      _targetType: 'page',
      _sessionId: '4F342D997571755772BA4CC9BFBF6A6C'
    },
    _keyboard: Keyboard {
      _modifiers: 0,
      _pressedKeys: Set(0) {},
      _client: [CDPSession]
    }
  },
  _accessibility: Accessibility {
    _client: CDPSession {
      eventsMap: [Map],
      emitter: [Object],
      _callbacks: Map(0) {},
      _connection: null,
      _targetType: 'page',
      _sessionId: '4F342D997571755772BA4CC9BFBF6A6C'
    }
  },
  _frameManager: <ref *2> FrameManager {
    eventsMap: Map(5) {
      Symbol(FrameManager.FrameAttached) => [Array],
      Symbol(FrameManager.FrameDetached) => [Array],
      Symbol(FrameManager.FrameNavigated) => [Array],
      Symbol(FrameManager.LifecycleEvent) => [],
      Symbol(FrameManager.FrameNavigatedWithinDocument) => []
    },
    emitter: {
      all: [Map],
      on: [Function: on],
      off: [Function: off],
      emit: [Function: emit]
    },
    _frames: Map(2) {
      'B9C06F56A7BF7A5B1352D05EA322BB69' => [Frame],
      '14F63A3E32849EF868CBD90C767D0D3A' => [Frame]
    },
    _contextIdToContext: Map(4) {
      3 => [ExecutionContext],
      4 => [ExecutionContext],
      5 => [ExecutionContext],
      6 => [ExecutionContext]
    },
    _isolatedWorlds: Set(1) { '__puppeteer_utility_world__' },
    _client: CDPSession {
      eventsMap: [Map],
      emitter: [Object],
      _callbacks: Map(0) {},
      _connection: null,
      _targetType: 'page',
      _sessionId: '4F342D997571755772BA4CC9BFBF6A6C'
    },
    _page: [Circular *1],
    _networkManager: NetworkManager {
      eventsMap: [Map],
      emitter: [Object],
      _requestIdToRequestWillBeSentEvent: Map(0) {},
      _requestIdToRequestPausedEvent: Map(0) {},
      _requestIdToRequest: Map(0) {},
      _extraHTTPHeaders: {},
      _credentials: null,
      _attemptedAuthentications: Set(0) {},
      _userRequestInterceptionEnabled: false,
      _protocolRequestInterceptionEnabled: false,
      _userCacheDisabled: false,
      _emulatedNetworkConditions: [Object],
      _client: [CDPSession],
      _ignoreHTTPSErrors: false,
      _frameManager: [Circular *2]
    },
    _timeoutSettings: TimeoutSettings {
      _defaultTimeout: null,
      _defaultNavigationTimeout: null
    },
    _mainFrame: Frame {
      _url: 'https://ils-frequency-lookup.com/EPWA',
      _detached: false,
      _loaderId: '29F07D1042FBAF6C3BCF85F3D407AC1B',
      _lifecycleEvents: [Set],
      _frameManager: [Circular *2],
      _parentFrame: null,
      _id: 'B9C06F56A7BF7A5B1352D05EA322BB69',
      _mainWorld: [DOMWorld],
      _secondaryWorld: [DOMWorld],
      _childFrames: [Set],
      _name: undefined
    }
  },
  _emulationManager: EmulationManager {
    _emulatingMobile: false,
    _hasTouch: false,
    _client: CDPSession {
      eventsMap: [Map],
      emitter: [Object],
      _callbacks: Map(0) {},
      _connection: null,
      _targetType: 'page',
      _sessionId: '4F342D997571755772BA4CC9BFBF6A6C'
    }
  },
  _tracing: Tracing {
    _recording: false,
    _path: '',
    _client: CDPSession {
      eventsMap: [Map],
      emitter: [Object],
      _callbacks: Map(0) {},
      _connection: null,
      _targetType: 'page',
      _sessionId: '4F342D997571755772BA4CC9BFBF6A6C'
    }
  },
  _coverage: Coverage {
    _jsCoverage: JSCoverage {
      _enabled: false,
      _scriptURLs: Map(0) {},
      _scriptSources: Map(0) {},
      _eventListeners: [],
      _resetOnNavigation: false,
      _reportAnonymousScripts: false,
      _includeRawScriptCoverage: false,
      _client: [CDPSession]
    },
    _cssCoverage: CSSCoverage {
      _enabled: false,
      _stylesheetURLs: Map(0) {},
      _stylesheetSources: Map(0) {},
      _eventListeners: [],
      _resetOnNavigation: false,
      _reportAnonymousScripts: false,
      _client: [CDPSession]
    }
  },
  _screenshotTaskQueue: ScreenshotTaskQueue { _chain: Promise { undefined } },
  _viewport: { width: 800, height: 600 }
}

nie sądzę żeby to był html z tej strony. czy czegoś nie dodałem w kodzie?

komentarz 30 września 2021 przez niezalogowany
const content = awaut page.content()

console.log(content)

Pewnie jeszcze trzeba poczekać aż się JS wykona
komentarz 1 października 2021 przez Maxxxii Obywatel (1,260 p.)
dzięki wielkie! :)

Podobne pytania

0 głosów
1 odpowiedź 423 wizyt
0 głosów
1 odpowiedź 536 wizyt
pytanie zadane 29 kwietnia 2021 w JavaScript przez rszczepanski02 Obywatel (1,180 p.)

92,682 zapytań

141,585 odpowiedzi

320,072 komentarzy

62,042 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...