Pythonのリクエストライブラリは、ChenBaiqiangの「Ijustlike you」をクロールし、reライブラリ(正規表現)を使用してosシステムモジュールを抽出、使用し、「\」アンチクライミングシンボルを削除します。

今日は「ILustLikeYou」という古き良き歌を聞きました。陳白強兄弟が歌いました、名前が示すように彼は本当に強いです!私が尊敬する広東の歌手の一人。それから、難しすぎて3時間かかりましたが、1ヶ月間這うことを学んだ年配の運転手にとっては本当に恥ずかしいことです。ただし、今回はSeleniumライブラリを使用してクロールしませんでした。Seleniumを使用すれば、迅速に実行され、問題はありません。一緒に学んでいく感覚を体験しましょう!

完全なコード:

#encoding = "utf-8"
#Author:"Mr.Pan_学狂"
#start time:2021/2/22/22:30
#finish time:2021/2/23/00:40
#requests库爬取 陈百强 《偏偏喜欢你》
from selenium import webdriver
from lxml import etree
import re
import requests
from urllib.request import urlretrieve
import time
import random
import os
url = 'https://haokan.baidu.com/v?vid=17139400655098661254&pd=bjh&fr=bjhauthor&type=video'
html = requests.get(url,headers=headers).text
#print(html)
#reg = r'<video class="" autoplay="" tabindex="2" mediatype="video" crossorigin="anonymous" src="(.*?)"</video>'video不存在,原因可能是JS的异步加载,网页是动态的。
reg = '"url":(.*?),"videoBps":352'
url = re.findall(reg,html)[0]
reg2 = '<h1 class="videoinfo-title">(.*?)</h1>'
video_name = re.findall(reg2,html)[0]
print(video_name)
print(url)
reg3 = '"(.*?)"'
url2 = re.findall(reg3,url)[0]#将url的引号处理掉!!因为直接用requests访问会进行引号嵌套出错!!
print(url2)#需要对url2进行处理,因为url2有反斜杠访问会出错!!
ls = []
for i in url2:
    ls.append(i)
#print(ls)
while True:
    if '\\' in ls:
        ls.remove('\\')
    else:
        break
print(ls)
url3 = ''
for l in ls:
    url3 += l
print('url3:',url3)

os.mkdir('E:/Example')
video = requests.get(url3,headers=headers)
with open(r'E:/Example/{}.mp4'.format(video_name),'wb+') as f:
       f.write(video.content)

次に、話をします。まず、古いやり方です。あまり言わない場合は、同意しない場合は、それを行うだけです。すべてのクローラーがライブラリとして表示されます。必要。
ここに画像の説明を挿入
次の図に示すように、このビデオのURLにアクセスして、要素を確認しましょう
ここに画像の説明を挿入
。seleniumライブラリを使用してこのビデオをクロールする場合、xpathを直接抽出できるため、非常に簡単です。ただし、リクエストのみを使用し、再(通常)抽出は多くの問題を引き起こします。通常のルーチンに従って、次の状況が発生するため、srcは抽出する必要のあるコンテンツです。しかし、このビデオタグのソースコードが存在しないため、このWebページは私たちと少し冗談を言いました(JSによってロードされていると思います、動的)。この抽出では、空のリストのみを取得でき、何も取得できません。そうすることで、始めたばかりの仲間のほとんどが直接諦めると思います。落胆しないでください。私たちはまだ希望を持っています!
ここに画像の説明を挿入
ここに画像の説明を挿入
以下に示すように、結果は空のリストになります。
ここに画像の説明を挿入

ただし、このページにこのビデオへのリンクがない場合は、ビデオにリンクしてはならず、このページにある必要があります。つまり、ビデオへのリンクは、にあります。ページのソースコード。そこで、pycharmエディターでCtrl + Fのキーの組み合わせを直接押して、次の図に示すように、ソースコードにmp4という単語が存在するかどうかを確認します。mp4に
ここに画像の説明を挿入
対応するリンクがさらに4つ見つかります。クリックすると、すべてが見つかりました。 4それはビデオへの同じリンクです。次に、リンクの1つを抽出する方法を見つける必要があります。次の図に示すように、videoBpsの値が352であるリンクを正規表現で抽出するために選択しました。
ここに画像の説明を挿入
ここに画像の説明を挿入
実行結果:
ここに画像の説明を挿入
hahahahahaha、ここでは本当に笑顔にならざるを得ません。リンクにクロールしてよろしいですか?アクセスできない文字列です。その時の私の心の影の領域S∈(-∞、+∞)を求めてください。この時点で、這う経験の少ない友人がその場で諦めて直接泣き始めたと推定されています。しかし、私たちは自分自身を信じ、希望を信じなければなりません!

急いでいません、私たちのreライブラリ6もそうです!数分で実行でき、効率的に実行できます。下の図に示すように:下の図に示すように、
ここに画像の説明を挿入
操作結果:
ここに画像の説明を挿入
引用符が削除されました。非常に満足していますか?はははははは、また笑った。まだ終わっていないので、聖文から学ぶのはそれほど簡単ではありません。エラーにつながるエスケープ文字\があり、その時点でハートが直接崩壊するため、このリンクを使用してリクエストにアクセスすることはできません。久しぶりの終わりですか?それでおしまい?以下に示すように:
ここに画像の説明を挿入
落ち着いて!慌てずに注意深く観察すると、すべてのエスケープ文字\が/の前にあることがわかります。エスケープ文字を/に置き換える方法を考えてみてください。試してみましたが、うまくいきませんでした。それで、他の方法を試しましたが、最後まで、解体後の再編成のアイデアを考えました(分散のようなものです)最初に問題のあるリンクを解体し、エスケープ文字を追加せずに再編成しました!この一連の考えに続いて、私はついに解決策を見つけ、問題を解決することに成功しました!

速いと言うには遅すぎます。次の図に示すように、リスト(コンテナ)を定義し、それを分解してリストに追加した
ここに画像の説明を挿入
ここに画像の説明を挿入
ことがわかりました。モールス信号に似たこのから、エスケープ文字\)\になりました、やることがあります!
次に、リストを使用して、リスト(コンテナ)に不要なメソッド(関数)を削除する必要があります。下の写真にあるように:
ここに画像の説明を挿入
ここに画像の説明を挿入
ハハハハ、私はついに真実を手に入れました、幸せです!次の操作は比較的簡単です。つまり、次の図に示すように、リスト要素(分解された単一文字)を結合する中間変数を定義します。
ここに画像の説明を挿入
その結果、非常に優れています。
ここに画像の説明を挿入
これは私たちが必要とする最後のビデオリンクであり、勝利のブルーレイを醸し出しています!クリックして見てみましょう:
ここに画像の説明を挿入
その後、ビデオ名も取得する必要があります。次の図に示すように、通常のルールを使用して元のページのソースコードから抽出します。
ここに画像の説明を挿入
操作結果は次のようになります。次の図:
ここに画像の説明を挿入
これで、ビデオアドレスとビデオ名ができました。osモジュールは、Eドライブにビデオを保存するためのExampleフォルダーを作成し、次の図に示すように、ルーチンのビデオアドレスの要求を開始します。 :
ここに画像の説明を挿入
次の図に示すように、EドライブにE​​xampleフォルダー(ディレクトリ)がないことがわかります。
ここに画像の説明を挿入
実行結果:
ここに画像の説明を挿入
ここに画像の説明を挿入
Exampleフォルダー(ディレクトリ)が自動的に作成され、図に示すようにビデオもそこに配置されます。下の図:下の図に示すように、
ここに画像の説明を挿入
クリックして再生し、スクリーンショットを撮りましょう
ここに画像の説明を挿入
。ChenBaiqiangのクラシック曲の場合は、一度行って取得してみませんか?私たちは自分自身を信じなければなりません、すべての困難は徐々に良くなるでしょう。

最後に、私の記事を見に来てくれてありがとう。記事には多くの不正があるかもしれません、そして私は彼ハイハンを指摘したいと思います。

おすすめ

転載: blog.csdn.net/weixin_43408020/article/details/113981567