2016-11-08 10 views
-1

私はいくつかのTwitterプロファイルのフォロワーのエイリアスをPythonで削り取ろうとしています。 APIを使用する場合は、300人のフォロワーごとにレート制限が適用されるため、より高速な方法を探しています。私はBeautiful Soupを使ってみましたが、BSは個々のフォロワーに関する情報を含むhtml要素を見つけることができませんでした。これは、ページのこの部分がjavascriptでレンダリングされる可能性があるためです。twitter followers seleniumを掻き集める

こうして私はセレンを使用しようとしましたが、フォロワー情報が含まれている要素を見つけるのにはまだ問題があります。

参照元のページからソースを選択したときに表示されるクラス名が "ProfileCard-content"の要素があるにもかかわらず、次のエラーが発生します。 "メッセージ:要素がありません: Iは、とりわけ、この要素を見つけることができない理由として「

from selenium import webdriver 

path_to_chromedriver = '/Users/my_name/Desktop/chromedriver' 
browser = webdriver.Chrome(executable_path = path_to_chromedriver) 

url = 'https://twitter.com/odeszaaa/followers' 

browser.get(url) 

browser.execute_script("window.scrollTo(0, document.body.scrollHeight);") 

el = browser.find_element(By.XPATH, "//div[@class='ProfileCard-content']") 

任意のアイデア{「ProfileCardコンテンツ」「方法」:「クラス名」、「セレクタ」}?

答えて

0

Twitterは遅延ロードを使用して、必要な時点までローディングします。 私は、ページの一番下までスクロールしてみます:

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") 

そしてそれは検索を使ってみた後、私はまた、クラス名を使用したXPathによる検索を行うことをお勧めします。

+0

"メッセージ:そのような要素はありません:要素を見つけることができません:{"メソッド ":" xpath "、" selector ":" // div [@ class = ' ProfileCardコンテンツ '] "}" これは私が使用されるコードである: selenium.webdriver.common.byインポートから browser.execute_script(よる "window.scrollToは(0、document.body.scrollHeight)は、" ) el = browser.find_element(By.XPATH、 "// div [@ class = 'ProfileCard-content']") – Sal

関連する問題