整合營銷服務商

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

          免費咨詢熱線:

          手把手教你使用Python網絡爬蟲獲取B站視頻選集內容(附源碼)

          家好,我是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學習交流群共同探討學習。


          擊上方“頭像”關注我們


          當我們在找素材的時候,經常會因為,找不到素材,從而必須得從騰訊或者優酷愛奇藝等大平臺視頻網站,去下載素材。但是這類大平臺視頻網站基本上都有水印。而且根本去不掉。(不用猜肯定有杠精說我不知道用軟件)


          那我是怕杠精的人嗎?開始正題

          那么我們今天就來聊一聊如何去除這些水印吧。


          要點:

          1. 進入視頻平臺,按F12或者右擊點查看元素

          2.打開網頁代碼后,ctrl+F,輸入logo或者watermark


          3.找到關鍵行直接整行刪,看看水印是否去除。沒去除接著重復2-3,因為視頻水印代碼不止一個。

          4.刪除后就可以錄屏或者下載了


          所有平臺的操作都如出一轍,希望大家見仁見智。不要因為自己沒成功就罵我

          求粉絲保護。

          學會了記得教給你的小伙伴哦。知識在于分享。

          覽html網頁,查看其源代碼,可以幫助我們了解該版網頁的信息以及架構,每個瀏覽器都是允許用戶查看他們訪問的任何網頁的HTML源代碼的。以下編程獅小師妹就介紹幾個常見瀏覽器的查看網頁 HTML 源代碼的方法。

          谷歌瀏覽器 Google Chrome

          僅查看源代碼

          方法一

          要僅查看源代碼,請按計算機鍵盤上的Ctrl+U。

          方法二

          右鍵單擊網頁的空白部分,然后從出現的彈出菜單中選擇“查看網頁源代碼(V)”。

          查看包含元素的頁面源

          1. 打開 Chrome 瀏覽器,然后瀏覽要查看其源代碼的網頁。
          2. 點擊瀏覽器窗口右上角的“自定義及控制Google Chrome” 圖標。
          3. 在出現的下拉菜單中,選擇更多工具(L),然后選擇開發者工具(D)(快捷鍵:Ctrl+Shift+I)。
          4. 單擊屏幕底部出現的新部分左上角的“元素(Elements)”選項卡。

          提示:

          在 Chrome 中,按 F12Ctrl+ Shift+I 也會調出交互式開發人員工具。此工具提供了與源代碼和 CSS 設置的更多交互,使用戶可以查看代碼中的更改如何立即影響網頁。

          火狐瀏覽器 Mozilla Firefox

          僅查看源代碼

          方法一

          要僅查看源代碼,請按計算機鍵盤上的 Ctrl+U。

          方法二

          右鍵單擊網頁的空白部分,然后從出現的彈出菜單中選擇“查看頁面源代碼(V)”。

          查看包含元素的頁面源

          1. 打開 Firefox 并瀏覽您要查看其源代碼的網頁。
          2. 單擊屏幕右上角的菜單 圖標。
          3. 在下拉菜單中選擇Web開發者,然后從展開的菜單中選擇切換工具箱(快捷鍵:Ctrl+ Shift+I)。
          4. 單擊顯示在屏幕底部的部分左上角的“查看器”選項卡。

          提示:

          在 Firefox 中,按 F12 或 Ctrl+ Shift+I也會調出交互式開發人員工具。該工具提供了與源代碼和 CSS 設置的交互,使用戶可以實時查看代碼中的更改如何影響網頁。

          查看頁面的部分源代碼

          1. 突出顯示網頁中您要查看其源代碼的部分。
          2. 右鍵單擊突出顯示的部分,然后選擇檢查元素(Q)。

          提示:

          您可以使用 Firebug 附加組件查看和編輯頁面的源代碼,并通過瀏覽器實時查看更改。

          微軟 Edge

          僅查看源代碼

          方法一

          要僅查看源代碼,請按計算機鍵盤上的Ctrl+U。

          方法二

          右鍵單擊網頁的空白部分,然后從出現的彈出菜單中選擇“查看頁面源代碼(V)”。

          查看包含元素的頁面源

          1. 打開 Microsoft Edge 并瀏覽您要查看其源代碼的網頁。
          2. 點擊屏幕右上角的設置和更多 圖標。
          3. 將鼠標移到更多工具(L)在下拉菜單中,在展開的菜單選擇開發人員工具(D)。
          4. 單擊屏幕右側出現的窗口頂部的“元素(Elements)”選項卡。

          提示:

          在Microsoft Edge中,按F12或 Ctrl+ Shift+I 也會調出交互式開發人員工具。該工具提供了與源代碼和 CSS 設置的交互,使用戶可以實時查看代碼中的更改如何影響網頁。

          IE瀏覽器 Microsoft Internet Explorer

          僅查看源代碼

          方法一

          要僅查看源代碼,請按計算機鍵盤上的Ctrl+U。

          方法二

          右鍵單擊網頁的空白部分,然后從出現的彈出菜單中選擇查看源(V)。

          查看包含元素的頁面源

          1. 打開 Internet Explorer 并瀏覽您要查看其源代碼的網頁。
          2. 單擊右上角的工具 。
          3. 從下拉菜單中選擇F12開發人員工具
          4. 單擊開發人員工具菜單左上角的 DOM 資源管理器 選項卡。

          提示:

          在 Internet Explorer 中,按 F12 會彈出 DOM 工具。該工具提供了與源代碼和 CSS 設置的交互,使用戶可以查看代碼中的更改如何立即影響網頁。

          360安全瀏覽器

          僅查看源代碼

          方法一

          要僅查看源代碼,請按計算機鍵盤上的Ctrl+U

          方法二

          右鍵單擊網頁的空白部分,然后從出現的彈出菜單中選擇“查看網頁源代碼(V)”。

          查看包含元素的頁面源

          1. 打開 360 安全瀏覽器,然后瀏覽要查看其源代碼的網頁。
          2. 點擊瀏覽器窗口右上角的打開菜單圖標。
          3. 在出現的下拉菜單中,選擇更多工具(L),然后選擇開發者工具(D)(快捷鍵:Ctrl+Shift+I)。
          4. 單擊屏幕底部出現的新部分左上角的“元素(Elements)”選項卡。

          提示:

          在 360 安全瀏覽器中,按 F12Ctrl+ Shift+I 也會調出交互式開發者工具。此工具提供了與源代碼和 CSS 設置的更多交互,使用戶可以查看代碼中的更改如何立即影響網頁。

          如何關閉源代碼頁或工具

          查看完網頁上的源代碼后,您可能想要退出或關閉它。關閉源代碼取決于您用來打開源代碼的方法。

          • 如果您使用了Ctrl+U 方法(Edge 除外)或右鍵單擊方法,請關閉在瀏覽器窗口頂部打開的新選項卡
          • 如果您使用過開發人員方法(使用 F12 或Ctrl+ Shift+I),請再次按相同的鍵,或單擊工具窗口右上角的圖標。

          使用在線工具查看源代碼

          除了使用瀏覽器外,還有一些在線工具可讓您查看任何網頁的源代碼。這些工具可能會有所幫助,因為大多數工具都可以格式化,樣式化和突出顯示代碼,以使其易于閱讀。

          以上就是編程獅W3Cschool為你整理的關于《如何在瀏覽器賬中查看網頁的HTML源代碼?》的全部內容,希望對你有所幫助~


          主站蜘蛛池模板: 国产精品视频一区二区噜噜| 日本一区二三区好的精华液| 日韩精品无码一区二区视频 | 精品一区二区三区无码免费直播| 射精专区一区二区朝鲜| 国产爆乳无码一区二区麻豆| 亚洲熟女少妇一区二区| 国产精品亚洲一区二区三区在线| 三上悠亚一区二区观看| 国产亚洲3p无码一区二区| 国产一区二区三区久久| 国产美女口爆吞精一区二区| 精品女同一区二区三区在线| 日本一区免费电影| 四虎精品亚洲一区二区三区| 精品人妻一区二区三区四区| 午夜视频久久久久一区 | 一区二区和激情视频| 亚洲午夜电影一区二区三区 | 亚洲国产精品乱码一区二区| 国产在线精品一区二区三区不卡| 国产观看精品一区二区三区| 国产亚洲一区区二区在线 | 国产一区二区中文字幕| 亚洲视频一区在线观看| 无码丰满熟妇浪潮一区二区AV | 国产亚洲综合精品一区二区三区 | 97精品国产福利一区二区三区| 中文字幕不卡一区| 中文字幕一区二区三| 蜜臀Av午夜一区二区三区| 国产精品第一区揄拍| 久久精品日韩一区国产二区| 色天使亚洲综合一区二区| 丝袜美腿高跟呻吟高潮一区| 岛国无码av不卡一区二区| 亚洲一区中文字幕| 在线电影一区二区| 国产激情精品一区二区三区| 日本一区二区三区在线观看 | 国产综合一区二区在线观看|