• 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
186 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ź 389 wizyt
0 głosów
1 odpowiedź 482 wizyt
pytanie zadane 29 kwietnia 2021 w JavaScript przez rszczepanski02 Obywatel (1,180 p.)

92,555 zapytań

141,402 odpowiedzi

319,540 komentarzy

61,938 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...