我正在 python 中工作。我獲得了一個名為 AdInsight 的網(wǎng)站的免費試用訪問權(quán)限。這是它的結(jié)構(gòu)示例:this。現(xiàn)在的問題是,該網(wǎng)站不是免費訪問的,但我必須通過我的機構(gòu)請求免費試用,這樣當我嘗試使用 Bs4 或類似的內(nèi)容來抓取它時,在我看來似乎我沒有要求輸入網(wǎng)頁(自從我嘗試“正?!陛斎胍詠恚揖驮O法做到了。也許一個問題可能是我在 chrome 中打開網(wǎng)頁并在 Safari 中處理本地環(huán)境。但是,html 代碼的位似乎與我相關(guān)的是以下內(nèi)容:</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>有沒有一種方法可以讓我簡單地遞歸訪問網(wǎng)站的搜索引擎并獲取我需要的一條信息(如果您沒有權(quán)限,該信息將被隱藏)
1 回答

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