起因
B駅の大ファンとして、ベッドに行くと絶対必要であるビデオのすべての強打を取得する前に。しかし、私は通常、ブラシがビデオをダウンロードしたいと考えていましたコンピュータで、昨日電話でブラシが、自身が、ダウンロードのビデオを書き込むためにこれだけしぶしぶ、何のWebアプリケーションのキャッシュ機能があったが見つかりません。(もともと書かれた最後の夜は、ハードも今日コンテンツ違反の結果は無力言った、B駅に投稿された映像を記録)
達成するためのステップバイステップ
この方法の一つ
私は、これは、ビデオ、その後、F12のページだと思います、URLはビデオを見つける
ブロブを暗号化することが判明し、ブロブは、オンラインのブログ、記事について多くを復号化します。しかし、最終的には直接の取得は、それが存在しないこと、そしてステッチリターンTSがたくさんありますか?ネットワーク負荷のコンテンツは、ビデオの再生時間を確認するために内部に行くために、発見された
私たちは、このウェブサイトにして、ローカルラインへのコンテンツの保存のアクセスを取得するつもりだので、これの多くは、ビデオファイルを文字化けしている表情が、あります。私たちは、このWebサイトに行かなければならないので、私は実際には内部のページがあることがわかりました。
ページM4Sを検索するには、Ctrl + Fは、発見
のようなURLに次の定期的な試合を、私はM4S形式で起動時にファイルを保存し、それ以降のFLV形式に保存したファイルので、開いてないことが判明しました。
方法二
一般的な考え方上記のように、私は、ネットワーク内のAPIが見つかった
ので、第2の実施はJSONを返すから、このページ、エキスのURLを訪問し、ファイルに保存された訪問のURLを、行くことです。
コード
このコードは、コード最初の方法で、第二にも非常に簡単です、あなたは、ヘッダーのようなパラメータに、それを単に賃金の注目を自分で試すことができます
import requests
import re
def get_html(url):
return requests.get(url,headers=headers1).text
def parse(html):
video_name=re.findall('<span class="tit">(.*?)</span>',html,re.S)[0]+'.flv'#本来是m4s,但是电脑打不开所以还是用flv
print("正在爬取"+video_name+"...")
video_url=re.findall('window.__playinfo__={.*?"baseUrl":"(.*?)".*?}',html,re.S)[0]
# print(video_url)
return video_url,video_name
def download(videourl,video_name):
with open(video_name,'wb') as f:
f.write(requests.get(videourl,headers=headers2,stream=True,verify=False).content)
f.close()
print("视频下载完成!")
if __name__ == '__main__':
avid=input("请输入要爬取的视频id:")
base_url=f'https://www.bilibili.com/video/av{avid}'
headers1={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
'Host': 'www.bilibili.com',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Accept-Encoding':'gzip, deflate, br',
'Accept-Language':'zh-CN,zh;q=0.9',
'Cache-Control': 'max-age=0',
'Connection': 'keep-alive'
}
headers2={
'Host':'cn-jsnj3-cmcc-v-14.bilivideo.com',
'Accept-Encoding':'identity',
'Accept-Language':'zh-CN,zh;q=0.9',
'Origin':'https://www.bilibili.com',
'Referer':base_url,
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
}
html=get_html(base_url)
videourl,videoname=parse(html)
download(videourl,videoname)
結果
欠点と改善:欠点は音がしないということで、まだそれについて考える必要がビデオの音声部分をクロールし、統合は、他のすべての動画のクロールに自宅やサイクルからすべての動画IDを一致させることができます、だけでなく、スレッドのいくつかはまた、リストに追加することができます。
遂に
ホワイトではなく、サーバーあまりの圧力に、サイクルも望ましいクロール、今言ったプレーを売春婦。ビデオをアップスタンド行うBの所有者は、我々は、高品質な映像コンテンツの富から多くを学ぶことができ、容易ではない、次回は拒否したので、いない白い娼婦パーティ!!!