我正在 python 中工作。我獲得了一個名為 AdInsight 的網站的免費試用訪問權限。這是它的結構示例:this。現在的問題是,該網站不是免費訪問的,但我必須通過我的機構請求免費試用,這樣當我嘗試使用 Bs4 或類似的內容來抓取它時,在我看來似乎我沒有要求輸入網頁(自從我嘗試“正?!陛斎胍詠?,我就設法做到了。也許一個問題可能是我在 chrome 中打開網頁并在 Safari 中處理本地環境。但是,html 代碼的位似乎與我相關的是以下內容:</script> <script class="optanon-category-2" type="text/plain"> dataLayer = [{ 'user': { 'visitor_id': getVisitorIdFromLocalStorage() }, 'session': { 'authentication':{ 'authenticationID': '1', 'method': 'anonymous' } }, 'page': { 'pageInfo': {}, 'category': { 'pageType': '' }, 'attributes': { 'template': '', } }, 'privacy': {}, 'version': '1.0.0', }]; (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-N8RLKKZ'); function getVisitorIdFromLocalStorage() { return localStorage.getItem("visitor_id"); } </script> <noscript> <h1 class="noScriptMsg"> Either you have JavaScript disabled or your browser does not support Javascript . To work properly, this page requires JavaScript to be enabled. <br/> <a href="https://www.enable-javascript.com/" target="_blank"> How to enable JavaScript in your browser? </a> </h1> </noscript> </head> <body>有沒有一種方法可以讓我簡單地遞歸訪問網站的搜索引擎并獲取我需要的一條信息(如果您沒有權限,該信息將被隱藏)
1 回答

繁花不似錦
TA貢獻1851條經驗 獲得超4個贊
IIUC 您的抓取不起作用,因為您需要登錄該網站。
Cookie
Web 中的身份驗證是通過 cookie 完成的(通過HTTP 請求中的標頭發送),因此在每個 HTTP 請求中,您應該包含Cookie
要進行身份驗證的標頭。
所以,我看到有兩個常見的選項:
在瀏覽器中手動在網站上進行身份驗證,轉到 DevTools 并
Cookie
從“網絡”選項卡復制標頭。然后為您用于抓取的 HTTP 請求庫設置此標頭。用于
Selenium
登錄網站,然后使用抓取網站Selenium
另一種選擇是檢查該網站是否有公共 API 文檔。如果他們這樣做,那么您應該在那里找到所有需要的信息,很可能您可以生成一些身份驗證令牌,以用作 HTTP 授權請求中的標頭。
添加回答
舉報
0/150
提交
取消