2

私はセレンの調査を始めたばかりですが、それは素晴らしいことですが、ELinksを使用してWebページを閲覧するスクリプトを作成したいと思います。

Se webdriverを使用すると、次のようなことができます。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

#Open firefox
br=webdriver.Firefox()
#open website
br.get('http://python.org')
#check if website title contains word
assert 'Python' in br.title
elem=br.find_element_by_name('q')
elem.send_keys('selenium')
elem.send_keys(Keys.RETURN)
assert 'Google' in br.title
br.close()

しかし、PythonでElinksを使用して同様のタスクを実行するにはどうすればよいですか?(またはそれはまったく可能ですか?)

4

2 に答える 2

4

elinksは本当に速いです。Luaスクリプト言語を使用してelinkを自動化できます。ドキュメントにはサンプルスクリプトがあります。また、Pythonでターミナルアプリケーションを自動化するための非常に優れた方法であるpexpectを試すこともできます。次のスクリプトは、pexpectを使用して、質問の例と同じタスクを実行します。python.orgにアクセスし、seleniumを検索し、検索結果をファイルに保存してから、elinksを終了します。

from pexpect import spawn
import time
import datetime

KEY_UP = '\x1b[A'
KEY_DOWN = '\x1b[B'
KEY_RIGHT = '\x1b[C'
KEY_LEFT = '\x1b[D'
KEY_ESCAPE = '\x1b'
KEY_BACKSPACE = '\x7f'

child = spawn('elinks http://python.org')
print 'waiting for python.org to load'
child.expect('Python')
time.sleep(0.1)
print 'doing selenium search'
child.sendline('/advanced search')
child.sendline(KEY_UP * 2)
child.sendline('selenium')
child.sendline('')
print 'waiting for search results'
child.expect('Google Search')
time.sleep(0.1)
print 'saving html'
child.send(KEY_ESCAPE)  # bring up menu
child.send(KEY_DOWN + 's')  # select save as in menu
child.send(KEY_BACKSPACE * 100) # remove any file name already in input box
file = './saved_' + datetime.datetime.now().strftime('%H%M%S') + '.html'
child.sendline(file)
#child.interact() #uncomment to interact with elinks, good for debugging
print 'quiting'
child.sendline('q')
child.wait()
于 2012-10-19T07:49:56.530 に答える
0

Seleniumには、ヘッドレスブラウザオプションhtmlunitがあります。htmlunitにはまだ完全なjavascript実装がありませんが、たくさんあります。壊れてしまうまで使用できます。

または、Chromeは関係なく非常に高速です。Webドライバーの自動化にChromeを使用していますが、Chromeは十分に高速であるため、タイミングを適切にコーディングしないと、ポートが使い果たされてしまいます。

于 2012-10-18T17:15:55.540 に答える