日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

爬虫python下载视频_用python做爬虫下载视频

發布時間:2023/12/15 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬虫python下载视频_用python做爬虫下载视频 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用python有一段時間了,對python是十二分喜愛,在我看來python是個好工具,可以輕松簡潔的幫我完成一些我想要完成的工作。下面和大家分享一下我用python爬取某網站視頻的案例。用python去保存網站的視頻,主要是為了后續的查看和備份。如果有需要做爬蟲研究的同學可以一起探討下。本文主要用到requests庫和BeautifulSoup庫。

1.抓取視頻第一步,分析目標網站的地址

本文中我爬取的是X網站,這個網站需要登錄,所以第一步是模擬網站登錄,如果你抓取的網站是不需要登錄的,可以忽略這一步。下面放上代碼。

session = requests.session()

UA = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.13 Safari/537.36"

header = {"User-Agent": UA}

session.post(login_url,headers=header,data={'phone':'***','password':'***'})

2.抓取視頻第二步,分析頁面當中的視頻地址

查看視頻地址的方法有很多,我用的是google的開發者工具,通過查看network,查看視頻頁面所請求的鏈接地址,然后根據視頻頁面url的get參數,找出請求視頻地址二者之間的關系。放上network的截圖視頻頁面實際的請求鏈接

3.抓取視頻第三步,模擬請求視頻地址,保存到本地,下面放上部分代碼

#模擬請求視頻頁面

f = session.get('http://www.xxx.com/xxxxxxxxxxxx',headers=header)

用到BeautifulSoup庫解析頁面源代碼當中的一些參數

soup = BeautifulSoup(f.content,'html.parser')

lesson_list = soup.find_all('li',attrs={'class':'video'})

if lesson_list:

all_urls = {}

for lesson in lesson_list:

v = lesson.attrs['onclick']

matches = re.compile(r'\d+').findall(v)

id = matches[0]

lesson_id = matches[1]

#構造要保存的文件名

filename = lesson.attrs['data-123'] + '_' + lesson.attrs['data-456']

filename = re.sub("[\s+\.\!\/_,$%^*(+\"\']+|[+——!,。??、~@#¥%……&*()]+",' ',filename)

filename = filename.replace(' ', '_').strip('_')

mp4_url = session.get('http://www.xxx.com?id={}&token_id={}'.format(lesson_id,mp4_token_id),headers=header)

#拼接保存的文件地址

file = dirname + filename + '_'+ lesson.attrs['id'] + '.mp4'

with open(file, 'wb') as f:

video = requests.get(mp4_url.text, stream=True)

print('正在下載視頻:id:{},lesson_id:{},file_name:{},url:{}'.format(id, lesson_id, file, mp4_url.text))

for chunk in video.iter_content(chunk_size=1024):

if chunk:

#保存視頻

f.write(chunk)運行代碼,已經開始下載視頻^_^

補充兩點

1>需要用到python requests庫當中的requests.session(),如果是需要登錄的網站,需要先登錄,再使用同一個session去請求其它頁面

2>如果想提高抓取效率,可以啟用多進程,多進程可以大大提高爬取視頻的效率

from multiprocessing import Pool

pool = Pool(10) #創建進程池,里面有10個進程

t = pool.map(run,args)

pool.close()

pool.join()

總結

使用python抓取視頻還是很方便的,關鍵是找到視頻頁面url和視頻地址url之間的聯系,然后模擬請求視頻地址url就可以了。最后注意必要時刻可以采取多進程,更換ip,更換請求頭的方式去抓取視頻,防止ip被網站封禁,這是需要注意的,如果大家有爬蟲方面的其他奇淫技巧,歡迎聯系我一起探討。

總結

以上是生活随笔為你收集整理的爬虫python下载视频_用python做爬虫下载视频的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。