0
ノートブックでこのウェブスクラッパーを実行します。Firefox(selenium - webdriver)を使用してデータを取得します。JavaScriptでデータが作成されるため、実際にFirefoxを開く必要があります。だから私は専用のサーバーがFirefoxを開いてデータを取得できるかどうか疑問に思います。専用のサーバーには表示がないので動作しません。スクリプトははるかに複雑です(よく152行) - 私は動作しないと思う部分だけを貼り付けました。 PostgreSQLへのデータのインポートは、専用サーバでは問題ありません。このpython web-scrapperは専用サーバーで実行できますか?
from selenium import webdriver
import time
from bs4 import BeautifulSoup
import lxml
import re
import psycopg2
import sys
driver = webdriver.Firefox()
driver.set_window_position(-9999, -9999)
driver.get("http://rodos.vsb.cz/Road.aspx?road=D2")
time.sleep(20) #waits till the page loads
html_source = driver.page_source
soup = BeautifulSoup(html_source, 'lxml')
# finds tags with speed information (km/h)
for i in (soup.find_all("tspan", {"id" : re.compile("tspan_Label_\w*")})):
if re.match("^[0-9]+$", (str(i.getText()))) is not None:
if (str(i.parent.get('fill'))) == '#5f5f5f':
list1.append(i.getText())
あなたはそれが(それがGUIを必要としない)ヘッドレスである代わりのFirefox PhantomJSを使用して考えがありますか? –
^クラウスが示唆しているように、GUI以外のブラウザを使用してリモートサーバでグラフィックスインターフェイスを実行すると、より簡単になる – slezica
ノートブックでPhantomJSを試しましたが、そのページにJavaScript要素が作成されませんでした。たぶん私は何か間違ったことをしました - あなたはPhantomJSがJavaScriptを実行し、JSによって作成された要素をスクラップできることは確かですか? – darude