2017-07-27 4 views
0

特定のキーワードを検索し、すべての動画URLをスクラップします。YouTube検索の動画をスクラップするにはどうすればよいですか?

私が貼り付けようとしているコードは、そうするつもりはありませんが、私が行ったことを示したいと思います。

chrome_path = r"C:\Users\Admin\Documents\chromedriver\chromedriver.exe" 
driver = webdriver.Chrome(chrome_path) 
driver.get("https://www.youtube.com/results?sp=CAISAggBUBQ%253D&q=minecraft") 

links = driver.find_elements_by_partial_link_text('/watch') 
for link in links: 
    links = (links.get_attribute("href")) 

リンクを削り取りファイルに保存するにはどうすればよいですか?ここで

+0

IDで一見 '項目セクション-897216'と、すべてのリンクがあり –

+0

になりますが、あなたが自動化しようとしているあなたの正確な手動手順であなたの質問の更新を検討することはできますか?この「https://www.youtube.com/results?sp=CAISAggBUBQ%253D&q=minecraft」のURLの中で、 'link_text'が'/watch'に設定された 'partial_link_text'を見つけることができません。私は 'Watch later'しか見つけませんでした。しかし、私はあなたが探しているものとは思わない。ありがとう – DebanjanB

+0

あなたは優れたAPIを使用することで、長期的にはより良いものになるでしょう。セレンなどを使用するほうがはるかに高速です。それを行う方法については、SOの記事がたくさんあります。例えばhttps://stackoverflow.com/q/20125750/8240959 – jlaur

答えて

0

は、あなたのコードはあなたにタイトルと動画のURLを与えている 光と簡単:)

from bs4 import BeautifulSoup 
import urllib.request 


def SearchVid(search): 
    responce = urllib.request.urlopen('https://www.youtube.com/results?search_query='+search) 

    soup = BeautifulSoup(responce)  
    divs = soup.find_all("div", { "class" : "yt-lockup-content"}) 


    for i in divs: 
     href= i.find('a', href=True) 
     print(href.text, "\nhttps://www.youtube.com"+href['href'], '\n') 
     with open(SearchString.replace("%20", "_")+'.txt', 'a') as writer: 
      writer.write("https://www.youtube.com"+href['href']+'\n') 

print("What are you looking for?") 
SearchString = input() 
SearchVid(SearchString.replace(" ", "%20")) 
0

実は、あなたがyoutube.com/resultsに起因こすってはいけません。ウェブサイトを削る前にまずrobots.txtをチェックする必要があります。 robots.txtの詳細については、このwikiページをお読みください。ここ

https://en.wikipedia.org/wiki/Robots_exclusion_standard

はユーチューブのrobots.txtファイルです。

https://www.youtube.com/robots.txt

あなたはユーチューブ検索APIを使用することができます、しかし別のオプションを持っています。

https://developers.google.com/youtube/v3/docs/search/list

+0

これをチェックしてください。googleはrobots.txtを尊重しないことが知られており、クローラのユーザーエージェントを偽装するなどのことを知っているとすれば、それは道徳的に正当だと言いますあなたは彼らのロボットを尊敬しないと言います。 – oneloop

関連する問題