Python?超簡潔且詳細(xì)爬取西瓜視頻案例
一、寫在前面
真的,為什么別人發(fā)游戲這么多人看,我發(fā)了兩次了加起來才一百個。
算了算了,不整游戲了,反正你們也不愛看~
今天來試試把頭條上扭腰上熱門的那些妹子爬一爬,不知道我頂不頂?shù)米
二、準(zhǔn)備工作
1、使用的環(huán)境
- python 3.8
- pycharm 2021.2 專業(yè)版
2、要用的第三方模塊
- selenium
- requests
- parsel
三、大致流程
鑒于你們不喜歡我啰嗦,但是流程呢,我還是要給你們寫出來,所以我就單獨把它列出來了。
1、網(wǎng)站分析(明確需求)
在視頻網(wǎng)頁源代碼當(dāng)中找到 embedUrl 對應(yīng)的鏈接;
在鏈接當(dāng)中找到視頻播放地址,在元素面板當(dāng)中;
發(fā)現(xiàn)規(guī)律 embedUrl上面的 groupby_id 其實就是當(dāng)前視頻鏈接上的id,下載視頻的時候 就只需要 一個 id 就可以下載視頻;(https://www.ixigua.com/embed?group_id=7029910152576926238)
2、代碼實現(xiàn)過程
- 構(gòu)建embedUrl https://www.ixigua.com/embed?group_id=7029910152576926238
- 使用selenium訪問該鏈接提
- 取視頻鏈接地址
- 拼接視頻鏈接地址
- 使用requests發(fā)送請求 并且獲取視頻二進(jìn)制
- 數(shù)據(jù)保存視頻
如果大家在學(xué)習(xí)Python的過程中不知道學(xué)習(xí)方向,該怎么學(xué),沒有好的系統(tǒng)的學(xué)習(xí)資料、沒人交流解答等等,都可以私我,我都給大家準(zhǔn)備好了。
四、代碼展示分析
首先導(dǎo)入一下模塊
import requests from selenium import webdriver
進(jìn)入瀏覽器設(shè)置
options = webdriver.ChromeOptions()
1、構(gòu)建embedUrl https://www.ixigua.com/embed?group_id=7029910152576926238
group_id = input("請輸入你要下載視頻的id:") url = 'https://www.ixigua.com/embed?group_id=' + group_id
無頭瀏覽器
options.add_argument("--headless")
加一個偽裝
options.add_argument('User-Agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"')
2、使用selenium訪問該鏈接 driver: 瀏覽器
driver = webdriver.Chrome(executable_path="chromedriver.exe", options=options)
打開一個網(wǎng)頁驅(qū)動配置: 代碼操作瀏覽器的一個中間人
driver.get(url)
隱式等待: 最多等待五秒 如果一秒鐘加載完了 繼續(xù)執(zhí)行
driver.implicitly_wait(5)
3、提取視頻鏈接地址
info = driver.find_elements_by_xpath('//*[@id="player_default"]/xg-controls/xg-definition/ul/li[1]') video_url = info[0].get_attribute("url")
4、拼接視頻鏈接地址
video_url = 'http:' + video_url
5、使用requests發(fā)送請求 并且獲取視頻二進(jìn)制數(shù)據(jù)
video_data = requests.get(video_url).content with open('1.mp4', mode='wb') as f: f.write(video_data)
所有代碼
import requests from selenium import webdriver # 進(jìn)入瀏覽器設(shè)置 options = webdriver.ChromeOptions() # 1. 構(gòu)建embedUrl https://www.ixigua.com/embed?group_id=7029910152576926238 group_id = input("請輸入你要下載視頻的id:") url = 'https://www.ixigua.com/embed?group_id=' + group_id # 無頭瀏覽器 options.add_argument("--headless") # 加一個偽裝 options.add_argument('User-Agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"') # 2. 使用selenium訪問該鏈接 # driver: 瀏覽器 driver = webdriver.Chrome(executable_path="chromedriver.exe", options=options) # 打開一個網(wǎng)頁 # 驅(qū)動配置: 代碼操作瀏覽器的一個中間人 driver.get(url) # 隱式等待: 最多等待五秒 如果一秒鐘加載完了 繼續(xù)執(zhí)行 driver.implicitly_wait(5) # 3. 提取視頻鏈接地址 info = driver.find_elements_by_xpath('//*[@id="player_default"]/xg-controls/xg-definition/ul/li[1]') video_url = info[0].get_attribute("url") # 4. 拼接視頻鏈接地址 video_url = 'http:' + video_url # 5. 使用requests發(fā)送請求 并且獲取視頻二進(jìn)制數(shù)據(jù) video_data = requests.get(video_url).content with open('1.mp4', mode='wb') as f: f.write(video_data) print("爬取成功!!!") #留了報錯,看看大家夠不夠機智找出來
兄弟們看完覺得有幫助,記得點贊三連哇~
到此這篇關(guān)于Python 超簡潔且詳細(xì)爬取西瓜視頻案例的文章就介紹到這了,更多相關(guān)Python 西瓜視頻內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解python 字符串和日期之間轉(zhuǎn)換 StringAndDate
這篇文章主要介紹了python 字符串和日期之間轉(zhuǎn)換 StringAndDate簡單實例的相關(guān)資料,需要的朋友可以參考下2017-05-05python文件讀取和導(dǎo)包的絕對路徑、相對路徑詳解
每次在讀或?qū)懳募r,獲取腳本文件的絕對路徑和相對路徑時很容易搞混,下面這篇文章主要給大家介紹了關(guān)于python文件讀取和導(dǎo)包的絕對路徑、相對路徑的相關(guān)資料,需要的朋友可以參考下2022-04-04python中l(wèi)ambda函數(shù)詳解及用法舉例
這篇文章主要給大家介紹了關(guān)于python中l(wèi)ambda函數(shù)詳解及用法的相關(guān)資料,Lambda 函數(shù)是 Python中的匿名函數(shù),有些人將它們簡稱為lambdas,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11基于Django URL傳參 FORM表單傳數(shù)據(jù) get post的用法實例
今天小編就為大家分享一篇基于Django URL傳參 FORM表單傳數(shù)據(jù) get post的用法實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05Python學(xué)習(xí)之str重要函數(shù)
這篇文章主要介紹了Python str重要函數(shù),本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2021-10-10