网络爬虫技术
搞了大半夜,终于把selenium 驱动Firefox调通。
这是web测试工具,也可用作页面抓取工具,尤其是对网站结构比较复杂,有异步加载的网站尤为合适。
废话少说,上代码,
上代码之前,先说下环境:
selenium版本:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.44.0</version>
<type>jar</type>
</dependency>
系统:win7 amd 64位旗舰版
之前用Firefox35.1死活搞不定,降到31.4一次性成功,搞了大半夜,原来是这个问题(刚刚他妹的还买了个16块包月的vpn去国外查资料,也没查出个所以然 16块白白浪费)。
废话少说,上代码:
webDriver = new FirefoxDriver();
webDriver.get("http://www.vip.com/");
JavascriptExecutor js = (JavascriptExecutor) webDriver;
//js.executeScript(arg0, arg1);
String tem1 = "0";
String tem2 = "1";
while(!tem1.equals(tem2)){
tem1 = js.executeScript("return window.document.body.scrollHeight; ").toString();
js.executeScript(" window.scroll(0,window.document.body.scrollHeight); ");
Thread.sleep(2000);
tem2 = js.executeScript("return window.document.body.scrollHeight; ").toString();
System.out.println(tem1+"---"+tem2);
//System.out.println(o.getClass().getName());
//js.executeAsyncScript)
}
System.out.println(webDriver.findElement(By.xpath("//*[@id='J_comingBrandList']/li[167]/div[1]/a")).getAttribute("class"));
webDriver.close();
哈哈哈,失望了吧,代码就这么点点!!!
运行结果:
8599---19449
19449---54769
54769---54769
s1_pic_story_link
对结果的说明:
做了个稍微智能的滚动,白天组长用了个指定次数的滚动,稍微有点浪费!我在这里提高了点儿效率。
但是中间那个睡眠时间我觉得还是有提高的余地的,但是具体的还不回用,有空再钻研。