海运的博客

Python使用Selenium/PhantomJS

发布时间:June 26, 2014 // 分类:Python // No Comments

Windows下安装setuptools和pip:
https://bootstrap.pypa.io/ez_setup.py
https://bootstrap.pypa.io/get-pip.py

python ez_setup.py
python get-pip.py

安装selenium:

pip install selenium

安装PhantomJS:

https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-linux-x86_64.tar.bz2
tar jxvf phantomjs-1.9.7-linux-x86_64.tar.bz2
cp phantomjs-1.9.7-linux-x86_64/bin/phantomjs /bin/
chmod 755 /bin/phantomjs 

使用示例:

from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get("http://www.baidu.com")
data = driver.title
print data

通过Remote Selenium Server:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
driver = webdriver.Remote(
  command_executor='http://192.168.1.3:4444/wd/hub',
  desired_capabilities={'browserName': 'PhantomJS',
                                  'version': '2',
                                  'javascriptEnabled': True})
driver = webdriver.Remote(
   command_executor='http://192.168.1.3:4444/wd/hub',
   desired_capabilities=DesiredCapabilities.PHANTOMJS)
driver.get("http://www.baidu.com")
data = driver.title
print data

PhantomJS和Firefox速度对比:

import unittest
from selenium import webdriver
import time
class TestThree(unittest.TestCase):

    def setUp(self):
        self.startTime = time.time()

    def test_url_fire(self):
        self.driver = webdriver.Firefox()
        self.driver.get("http://www.qq.com")
        self.driver.quit()

    def test_url_phantom(self):
        self.driver = webdriver.PhantomJS()
        self.driver.get("http://www.qq.com")
        self.driver.quit()

    def tearDown(self):
        t = time.time() - self.startTime
        print "%s: %.3f" % (self.id(), t)
        self.driver.quit

if __name__ == '__main__':
    suite = unittest.TestLoader().loadTestsFromTestCase(TestThree)
    unittest.TextTestRunner(verbosity=0).run(suite)

标签:none

发表评论

分类
最新文章
最近回复
  • 海运: 换回了5.3内核,5.8用5.3 dtb虽然能开机且负载正常,但也有其它问题,不建议使用。
  • shangyatsen: 后面的内核高精度计时器的问题使用5.4或者5.3的dtb会正常吗?我也发现有这个日志出现。感觉...
  • 海运: 缺少相应模块?
  • lee: 你好,我执行这条语句 iptables -t mangle -A PREROUTING -m ...
  • 海运: 只更新rootfs,不更新内核,我在用5.3配19.10,懒得再升最新版了,很稳定。 注意:更...
  • lyly168: 这是手动挂载吧,请问自动挂载要怎么弄?
  • swswsw1: 请问升级后,内核更新了吗?听说N1只有在5.0.2的内核下才稳定,怕升级了之后功耗太高
  • 海运: LOG_LEVEL是配置文件变量,本文配置使用systemd启动在EnvironmentFil...
  • 1: 我源碼沒有任何修改,同樣編譯的在X86上可以正常運行。然後原封不動編譯aarch64就提示以上錯誤。
  • 海运: 你配置变量有问题?LOG_LEVEL? https://github.com/dani-gar...