ウェブページ上をスクロールして、新しい要素をウェブ上でスクラップする必要があります。私はこれをpython 3.x
,selenium
とPhantomJS
を使って作ろうとしています。これは私のコードですphatomJSとセレンを使ってウェブサイトをスクロール
import time
from selenium import webdriver
from bs4 import BeautifulSoup
user = 'ciroylospersas'
# Start web browser
#browser = webdriver.Firefox()
browser = webdriver.PhantomJS()
browser.set_window_size(1024, 768)
browser.get("https://twitter.com/")
# Fill username in login
element = browser.find_element_by_id("signin-email")
element.clear()
element.send_keys('your twitter user')
# Fill password in login
element = browser.find_element_by_id("signin-password")
element.clear()
element.send_keys('your twitter pass')
browser.save_screenshot('screen.png') # save a screenshot to disk
# Summit the login
element.submit()
time.sleep(5
browser.save_screenshot('screen1.png') # save a screenshot to disk
# Move to the following url
browser.get("https://twitter.com/" + user + "/following")
browser.save_screenshot('screen2.png') # save a screenshot to disk
scroll_script = "var h = document.body.scrollHeight; window.scrollTo(0, h); return h;"
newHeight = browser.execute_script(scroll_script)
print(newHeight)
browser.save_screenshot('screen3.png') # save a screenshot to disk
問題は私が下にスクロールできないことです。 screen2.png
とscreen3.png
は同じです。しかし、webdriver
をPhantomJS
からFirefox
に変更すると、同じコードが正常に動作します。どうして?
として使用答えは?スクロール後にレンダリングする必要があるかもしれません。 –
'time.sleep(5)'を試してみましたが、うまくいきません。 –
高さを '10000'にハードコーディングしてスクロールすることができますか? 'scroll_script'を' window.scrollTo(0、1000) 'と設定します。 –