我使用C#和Python的Selenium Webdriver从网站获取数据元素,但web抓取的速度非常慢。抓取35000个数据表花了我大约1.5天的时间。使用Selenium Webdriver,我可以执行Javascript来获取Java元素。有没有一些库可以不需要像Webdriver这样的东西来在网页上执行Javascript来检索元素,并且能够点击元素?或者有没有比硒更快的替代品?
发布于 2016-12-13 19:47:23
我建议你使用TestCafe。

TestCafe是用于web功能测试(e2e测试)的免费开源框架。TestCafe是基于Node.js的,根本不使用WebDriver。
TestCafe驱动的测试在服务器端执行。为了获得DOM元素,TestCafe提供了强大灵活的选择器系统。TestCafe可以使用JavaScript功能在测试网页上执行ClientFunction (请参阅我们的文档)。
see for yourself,TestCafe测试真的很快。但高速测试运行不会影响稳定性,这要归功于内置的智能等待系统。
TestCafe的安装非常简单:
1)检查您的PC上是否安装了Node.js (或安装)。
2)安装TestCafe open cmd,输入:
npm install -g testcafe写测试并不是一门火箭科学。这里有一个快速入门: 1)复制-粘贴以下代码到您的文本编辑器,并将其保存为"test.js“
import { Selector } from 'testcafe';
fixture `Getting Started`
.page `http://devexpress.github.io/testcafe/example`;
test('My first test', async t => {
await t
.typeText('#developer-name', 'John Smith')
.click('#submit-button')
.expect(Selector('#article-header').innerText).eql('Thank you, John Smith!');
});2)通过在cmd中键入以下命令,在浏览器(例如chrome)中运行测试:
testcafe chrome test.js3)在控制台输出中获取描述性结果。
TestCafe允许您针对各种浏览器进行测试:本地、远程(在设备上,无论是Raspberry Pi的浏览器还是iOS的Safari )、云(例如Sauce Labs)或无头(例如Nightmare)。这意味着您可以轻松地将TestCafe与您的Continious Integration基础设施一起使用。
发布于 2015-04-16 17:52:45
我建议使用Selenium + PhantomJSDriver (Ghostdriver),它用于图形用户界面较少的浏览器自动化。这样,您就可以轻松地浏览页面,选择元素(您可以选择航班),提交表单,还可以执行一些抓取操作。还支持Javascript。
您可以阅读Selenium文档。您必须下载文件。
在中提供了一个很好的教程forPhantomJSDriver
PhantomJSDriver的配置(来自本教程):
DesiredCapabilities caps = new DesiredCapabilities();
caps.setJavascriptEnabled(true); // not really needed: JS enabled by default
caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "C://phantomjs.exe");
caps.setCapability("takesScreenshot", true);
WebDriver driver = new PhantomJSDriver(caps); 其他选项(不需要WebDriver):
PhantomJS是一个带有JavaScript应用编程接口的无头WebKit脚本。它具有对各种web标准的快速和本机支持: DOM处理、CSS选择器、JSON、Canvas和SVG。
这是没有图形用户界面的,也有截图的能力。
示例(来自):
var page = require('webpage').create();
page.open('http://example.com', function(status) {
console.log("Status: " + status);
if(status === "success") {
page.render('example.png');
}
phantom.exit();
});PS:我建议JSoup用于网络抓取,但它不支持Javascript。PhantomJSDriver为python提供了一个叫做Ghost.py的东西。
发布于 2015-07-20 17:43:35
那LeanFT呢?这是一个新的惠普产品,可以与C#和Java协同工作,用户说他们切换到了LeanFT,“因为Selenium couldn’t handle他们所有的应用程序。”
https://stackoverflow.com/questions/29671060
复制相似问题