一、寫在前面
真的,為什麼别人發遊戲這麼多人看,我發了兩次了加起來才一百個。
算了算了,不整遊戲了,反正你們也不愛看~

今天來試試把頭條上扭腰上熱門的那些妹子爬一爬,不知道我頂不頂得住~
二、準備工作
1、使用的環境
- python 3.8
- pycharm 2021.2 專業版
2、要用的第三方子產品
- selenium
- requests
- parsel
三、大緻流程
鑒于你們不喜歡我啰嗦,但是流程呢,我還是要給你們寫出來,是以我就單獨把它列出來了。
圖檔
1、網站分析(明确需求)
- 在視訊網頁源代碼當中找到 embedUrl 對應的連結;
- 在連結當中找到視訊播放位址,在元素面闆當中;
- 發現規律 embedUrl上面的 groupby_id 其實就是目前視訊連結上的id,下載下傳視訊的時候 就隻需要 一個 id 就可以下載下傳視訊;
2、代碼實作過程
- 建構embedUrl
- 使用selenium通路該連結
- 提取視訊連結位址
- 拼接視訊連結位址
- 使用requests發送請求 并且擷取視訊二進制資料
- 儲存視訊
四、代碼展示分析
首先導入一下子產品
import requests
from selenium import webdriver
複制
進入浏覽器設定
options = webdriver.ChromeOptions()
複制
1、建構embedUrl
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)
複制
打開一個網頁
驅動配置: 代碼操作浏覽器的一個中間人
driver.get(url)
複制
隐式等待: 最多等待五秒 如果一秒鐘加載完了 繼續執行
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發送請求 并且擷取視訊二進制資料
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
# 進入浏覽器設定
options = webdriver.ChromeOptions()
# 1. 建構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)
# 打開一個網頁
# 驅動配置: 代碼操作浏覽器的一個中間人
driver.get(url)
# 隐式等待: 最多等待五秒 如果一秒鐘加載完了 繼續執行
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發送請求 并且擷取視訊二進制資料
video_data = requests.get(video_url).content
with open('1.mp4', mode='wb') as f:
f.write(video_data)
print("爬取成功!!!")
#留了報錯,看看大家夠不夠機智找出來
複制
兄弟們看完覺得有幫助,記得點贊三連哇~