整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          想獲取JS加載網頁的源網頁的源碼,不想獲取JS加載后的數據

          家好,我是Python進階者。

          一、前言

          前幾天在Python鉆石交流群【夢】問了一個Python網絡爬蟲的問題,這個網站不知道使用了什么反爬手段,都獲取不到頁面數據。原來的那篇文章竟然爆文了,突破了1.5w的閱讀量,歡迎大家圍觀。

          不過這里粉絲的需求有點奇怪,他不需要JS加載后的數據頁面,而是需要JS的源網頁。昨天在群里又討論起這個問題,這次一起來看看這個問題。

          二、實現過程

          這里【瑜亮老師】指出異步頁面中,標簽和數據都是不在頁面源碼中的。你的這個頁面,數據在json,然后js拼裝后顯示在頁面中。如果你想要獲取你說的帶標簽的源碼,可以使用自動化模塊,例如:selenium(不建議用這個),playwright,drissionpage。

          后來【提請問粘給圖截報錯貼代源碼】給出了具體的源碼:

          from DrissionPage import WebPage
          
          page = WebPage()
          # 訪問網頁并渲染
          page.get('https://fx.cmbchina.com/hq', timeout=300)
          response = page.html
          print(response)
          page.quit()
          

          打開network,查看這個網頁的渲染方式,你就知道這個網頁一開始是沒有內容的,全靠js在渲染。

          你直接訪問這個鏈接就是沒有內容。

          先渲染再獲取就有了,再者說,你的目的肯定是只要這頁面上的表格,表格就是json,獲取json鏈接比獲取渲染后的網頁方便多了。可以不在頁面本身的,使用dom插入,現在的數據頁面基本都是這種方式,效率高且安全性好。

          【貓藥師Kelly】也指出使用drissionpage,配合自帶的監聽或者mitmproxy,能搞定很多活。

          順利地解決了粉絲的問題。

          如果你也有類似這種Python相關的小問題,歡迎隨時來交流群學習交流哦,有問必答!

          三、總結

          大家好,我是Python進階者。這篇文章主要盤點了一個Python網絡爬蟲網頁JS渲染源網頁源碼獲取的問題,文中針對該問題,給出了具體的解析和代碼實現,幫助粉絲順利解決了問題。

          最后感謝粉絲【夢】提出的問題,感謝【論草莓如何成為凍干莓】、【瑜亮老師】、【貓藥師Kelly】給出的思路,感謝【莫生氣】等人參與學習交流。

          【提問補充】溫馨提示,大家在群里提問的時候。可以注意下面幾點:如果涉及到大文件數據,可以數據脫敏后,發點demo數據來(小文件的意思),然后貼點代碼(可以復制的那種),記得發報錯截圖(截全)。代碼不多的話,直接發代碼文字即可,代碼超過50行這樣的話,發個.py文件就行。

          家好,我是Python進階者。

          前言

          前幾天雪球兄在Python交流群里分享了一個獲取B站視頻選集的Python代碼,小編覺得非常奈斯,這里整理成一篇小文章,分享給大家學習。

          關于雪球兄,大家應該都熟悉了,之前他寫過Python實戰文章,好評如潮,沒來得及看的小伙伴,可以戳這里了:

          盤點常用驗證碼標注和識別項目線上部署三種方式——VUE前端、Java后端和Python后端部署

          Python項目實戰篇——常用驗證碼標注&識別(CNN神經網絡模型訓練/測試/部署)

          Python項目實戰篇——常用驗證碼標注&識別(前端+后端實現高效率數據標注)

          Python項目實戰篇——常用驗證碼標注&識別(數據采集/預處理/字符圖切割)

          Python項目實戰篇——常用驗證碼標注和識別(需求分析和實現思路)

          之前也有給大家分享B站的一些文章,感興趣的話可以看看這個文章,Python網絡爬蟲+數據分析:手把手教你用Python網絡爬蟲獲取B站UP主10萬條數據并用Pandas庫進行趣味數據分析。


          一、背景引入

          一提到B站,第一印象就是視頻,相信很多小伙伴和我一樣,都想著去利用網絡爬蟲技術獲取B站的視頻吧,但是B站視頻其實沒有那么好拿到的,關于B站的視頻獲取,之前有介紹通過you-get庫進行實現,感興趣的小伙伴可以看這篇文章:You-Get 就是這么強勢!。

          言歸正傳,經常在B站上學習的小伙伴們可能經常會遇到有的博主連載幾十個,甚至幾百個視頻,尤其像這種編程語言、課程、工具使用等連續的教程,就會出現選集系列,如下圖所示。

          當然這些選集的字段我們肉眼也是可以看得到的。只是通過程序來實現的話,可能真沒有想象的那么簡單。那么這篇文章的目標呢,就是通過Python網絡爬蟲技術,基于selenium庫,實現視頻選集的獲取。


          二、具體實現

          這篇文章我們用的庫是selenium,這個是一個用于模擬用戶登錄的庫,雖然給人的感覺是慢,但是在網絡爬蟲領域,這個庫還是用的蠻多的,用它來模擬登錄、獲取數據屢試不爽。下面是實現視頻選集采集的所有代碼,歡迎大家親自動手實踐。

          # coding: utf-8
          from selenium import webdriver
          from selenium.webdriver.common.by import By
          from selenium.webdriver.support import expected_conditions as EC
          from selenium.webdriver.support.wait import WebDriverWait
          
          
          class Item:
              page_num = ""
              part = ""
              duration = ""
          
          
              def __init__(self, page_num, part, duration):
                  self.page_num = page_num
                  self.part = part
                  self.duration = duration
          
          
              def get_second(self):
                  str_list = self.duration.split(":")
                  sum = 0
                  for i, item in enumerate(str_list):
                      sum += pow(60, len(str_list) - i - 1) * int(item)
          
          
                  return sum
          
          
          def get_bilili_page_items(url):
              options = webdriver.ChromeOptions()
              options.add_argument('--headless')  # 設置無界面
              options.add_experimental_option('excludeSwitches', ['enable-automation'])
              # options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2,
              #                                           "profile.managed_default_content_settings.flash": 0})
          
          
              browser = webdriver.Chrome(options=options)
              # browser = webdriver.PhantomJS()
              print("正在打開網頁...")
              browser.get(url)
          
          
              print("等待網頁響應...")
              # 需要等一下,直到頁面加載完成
              wait = WebDriverWait(browser, 10)
              wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@class="list-box"]/li/a')))
          
          
              print("正在獲取網頁數據...")
              list = browser.find_elements_by_xpath('//*[@class="list-box"]/li')
              # print(list)
              itemList = []
          
          
              second_sum = 0
          
          
              # 2.循環遍歷出每一條搜索結果的標題
              for t in list:
                  # print("t text:",t.text)
                  element = t.find_element_by_tag_name('a')
                  # print("a text:",element.text)
                  arr = element.text.split('\n')
                  print(" ".join(arr))
                  item = Item(arr[0], arr[1], arr[2])
                  second_sum += item.get_second()
                  itemList.append(item)
          
          
              print("總數量:", len(itemList))
              # browser.page_source
          
          
              print("總時長/分鐘:", round(second_sum / 60, 2))
              print("總時長/小時:", round(second_sum / 3600.0, 2))
          
          
              browser.close()
          
          
              return itemList
          
          
          
          
          get_bilili_page_items("https://www.bilibili.com/video/BV1Eb411u7Fw")

          這里用到的選擇器是xpath,利用視頻示例是B站的《高等數學》同濟版 全程教學視頻(宋浩老師)視頻選集,大家如果想抓取其他視頻選集的話,只需要更改上述代碼的最后一行的URL鏈接即可。


          三、常見問題

          在運行過程中小伙伴們應該會經常遇到這個問題,如下圖所示。

          這個是因為谷歌驅動版本問題導致的,只需要根據提示,去下載對應的驅動版本即可,驅動下載鏈接:

          https://chromedriver.storage.googleapis.com/index.html


          四、總結

          我是Python進階者。這篇文章主要給大家介紹了B站視頻選集內容的獲取方法,基于網絡爬蟲,通過selenium庫和xpath選擇器進行實現,并且給大家例舉了常見問題的處理方法。小伙伴們,快快用實踐一下吧!如果在學習過程中,有遇到任何問題,歡迎加我好友,我拉你進Python學習交流群共同探討學習。

          么是文章采集代碼

          網頁文章采集碼,是一款利用獨特編程技巧的高效網頁采集器。它僅需編寫特定指令,便能快速獲取互聯網上的大量文本與圖像資料,猶如人工逐頁篩選。此外,該技術在信息檢索以及數據分析等領域亦產生了顯著影響。

          在信息化時代,如何有效地獲取有價值的信息成為至關重要的問題。傳統的人工檢索耗時且效果有限,復制粘貼的方式顯然已經無法滿足需求。而文章采集代碼具有顯著提升信息收集效率及準確性的優點,因此已逐漸成為學術研究、數據分析及企業市場推廣領域必不可少的工具。

          文章采集代碼的原理

          本程序具有卓越的編寫理念,主要包括以下四個核心環節:

          關鍵技術在于軟件借助HTTP協議,直接獲取指定站點的頁面原始數據。

          剖析網頁源碼:對于搜集到的文檔,深度解讀其中的HTML格式與相關數據結構。

          我們已經摒棄了提取出來的信息中無用的部分,包括HTML標識和特殊字符等,以揭示其真正的核心價值。

          數據存儲策略:經過精細篩選與加工后的數據,將按照秩序存入數據庫或檔案文件,為將來深入分析以及可視化展出提供支持。

          我們來詳細研究影響數據精度和完整性的重要因素,包括反爬蟲措施的應對,以及解決動態加載等復雜難題的有效方法。只有深入理解原理并結合實踐經驗做出精準策略調整,才能創建出優質且穩定運行的文章采集軟件代碼。

          常見的文章采集工具

          數字化浪潮日益加速,促使眾多文本采集工具應運而生,為提升開發者工作效能立下汗馬功勞。此篇特推薦幾款表現優異且功能強大的中期優秀采集工具以供參考:

          強力推薦Beautiful Soup:作為Python編程中杰出的HTML處理利器,助力您迅速提取HTML和XML文檔中的關鍵信息。

          Scrapy:這是Python開發的開源網絡爬蟲框架,其出色的實用性和廣泛應用領域彰顯了其優異品質。

          Selenium:專攻網絡應用測試領域,尤為擅長仿真用戶操作行為。

          根據不同環境合理選用工具,以滿足多元化需求;用戶需明確自我需求,并在科學評估技術水準的基礎上作出適宜選擇。

          文章采集代碼在實際應用中的挑戰

          盡管文章采集代碼具備高效便捷的優點,但在實踐操作過程中仍需面臨諸多困難。主要挑戰包括以下幾點:

          以應對惡意爬蟲為例,為了規避網站遭到非法訪問并確保數據安全性,許多網站已實施高效的反爬蟲策略。因此,在文章代碼編寫時,務必避免觸發此類防范措施。

          如今眾多企業均利用JavaScript實現在線實時數據加載,為進一步提高此類網頁信息獲取效率,推薦采用諸如Selenium等自動化測試工具進行模擬操控。

          隨著信息和網頁編輯形式多樣化(例如HTML、JSON、XML等格式),數據處理的復雜性急劇增加。

          在眾多挑戰下,開發者必須深化技能,以探索滿足項目個性需求的最優方案。

          未來文章采集技術發展趨勢

          在現今大數據和科技迅猛發展的環境下,文章采編技術正逐步展現出如下關鍵趨勢。

          隨著AI科技的飛速發展,文章采集工作正逐步運用先進的算法與技術。如面向網頁結構解析的機器學習技術,能有效地自動識別并提取關鍵信息。

          多元化趨勢日益明顯:隨著互聯網及移動設備的廣泛應用,各種視聽類媒體呈現出快速創新之勢。在未來的信息收集及展示環節中,深度加工及精密分析將倍受關注。

          關注隱私保護提高警惕:鑒于當下社會隱私意識不斷提升,在收集和利用用戶自創內容時,必須堅決尊重其隱私權。

          展望未來,文章采集技術將逐步向智能性增強、多元性拓展并注重用戶體驗與隱私保護的趨勢邁進。


          主站蜘蛛池模板: 日韩av片无码一区二区三区不卡| 国产激情视频一区二区三区| 精品国产一区二区三区久久| 亚洲av成人一区二区三区 | 手机看片一区二区| 精品一区二区三区在线视频| 久久精品无码一区二区无码| 亚洲色精品三区二区一区| 日日摸夜夜添一区| 亚洲一区二区高清| 在线欧美精品一区二区三区 | 国产AV午夜精品一区二区三| 国产午夜福利精品一区二区三区| 一区二区三区影院| 亚洲色偷精品一区二区三区| 中文日韩字幕一区在线观看| 在线日产精品一区| 亚洲国产一区国产亚洲| 能在线观看的一区二区三区| 成人免费观看一区二区| 国产一区视频在线| 国产一区在线视频| 国产一区二区三区在线| 国产福利日本一区二区三区| 男插女高潮一区二区| 亚洲AV无码国产一区二区三区| 久久久人妻精品无码一区| 日本精品少妇一区二区三区| 免费无码A片一区二三区| 91精品一区二区三区在线观看| 亚洲人成人一区二区三区 | 久久久久成人精品一区二区| 人成精品视频三区二区一区| 日韩毛片一区视频免费| 精品一区二区三区免费观看| 岛国精品一区免费视频在线观看| 久久久久人妻一区精品 | 亚洲变态另类一区二区三区| 国产欧美一区二区精品仙草咪| 无码中文人妻在线一区| 日本精品一区二区三区在线视频一|