sam*_*sam 1 selenium selenium-webdriver
我正在阅读Selenium文档,我无法确定您是否可以在服务器上运行它 - 作为更大的Web应用程序的一部分.
即.Web应用程序中发生的事情会触发自动运行的Selenium脚本,然后将结果返回给Web应用程序.
这可能是Selenium的使用还是总是需要一个实际的浏览器来运行其中的任务,还是可以为自己运行虚拟浏览器?
Pet*_*ček 10
Selenium总是需要一个浏览器实例来控制.
幸运的是,有些浏览器并不像你所知道的常见浏览器那么重.您不必打开IE/Firefox/Chrome/Opera.您可以使用HtmlUnitDriver哪个控件HTMLUnit - 一个没有任何UI的无头Java浏览器.或者是一个PhantomJsDriver驱动器PhantomJS- 在WebKit上运行的另一个无头浏览器.
那些无头浏览器的内存更少,通常更快(因为它们不需要渲染任何东西),它们不需要图形界面就可以用于它们运行的计算机,因此很容易在服务器端使用.
我设法在服务器Selenium上运行CentOS。我用过Chromedriver。我发现Chromedriver可能需要浏览器(尽管据报道最新的 Chrome可以在没有浏览器的情况下运行......我没有尝试过)。但在服务器中,您不需要为此目的GUI运行浏览器( )。Google-Chrome
以下是我遵循的步骤:
# FOR CENTOS
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
yum localinstall google-chrome-stable_current_x86_64.rpm
# FOR UBUNTU (I didn't validate it myself, as I only worked with CentOS)
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo apt-get install -f
Run Code Online (Sandbox Code Playgroud)
google-chrome --version
Run Code Online (Sandbox Code Playgroud)
Chromedriver根据Google Chrome您拥有的版本下载适合您的发行版的版本。开始Chromedriver使用:Chrome 驱动程序 | 下载--no-sandbox浏览Chrome器将无法运行。有些人还说将此选项保留为第一个选项。另一些人说只有这个选项就足够了......阅读第三个参考文献中提到的帖子的评论。):from selenium.webdriver.chrome.options import Options
from selenium import webdriver
options = Options()
options.add_argument('--no-sandbox')
options.add_argument("--headless")
options.add_argument('--disable-dev-shm-usage')
Run Code Online (Sandbox Code Playgroud)
Chromedriver的目录(以下显示当前目录)并传递这些选项:driver = webdriver.Chrome('./chromedriver', options = options)
Run Code Online (Sandbox Code Playgroud)
Selenium爬行:driver.get(YOUR_DESIRED_LINK)
Run Code Online (Sandbox Code Playgroud)
参考:
| 归档时间: |
|
| 查看次数: |
2781 次 |
| 最近记录: |