1
import requests
from bs4 import BeautifulSoup
youtube = "https://www.youtube.com/results?search_query="
def get_address(keyword):
query = youtube + keyword
source_code = requests.get(query)
plain_text = source_code.text
soup = BeautifulSoup(plain_text, "html.parser")
for link in soup.findAll('a', {'id': 'video-title'}):
href = link.get('href')
print(href)
break
get_address("scishow")
プログラムは正常に実行されますが、ビデオのアドレスを表示する代わりに、出力に何も表示されません。なぜこのYouTubeクローラにはPythonで出力が表示されませんか?
あなたのコードは問題ありません。あなたが探している 'a'タグが存在しないため、出力に何も表示されない唯一の理由があります。 ''はJavaScriptで後でページに追加されますが、最初のHTMLコードを取得したときには実行されていません。 – pacha
おそらく、ページには「JS」が使用されている可能性があります。この場合、リクエストは役に立たず、代わりに 'selenium'を使います。 –