selenium-java web自动化测试工具抓取百度搜索结果实例

这种方式抓百度的搜索关键字结果非常容易
抓长尾关键词,根据热门关键词去抓更多内容可以用
抓google,百度的这种内容容易给屏蔽,用这种就不会了

1.新建maven项目,引入selenium-java

  1. <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
  2. <dependency>
  3. <groupId>org.seleniumhq.selenium</groupId>
  4. <artifactId>selenium-java</artifactId>
  5. <version>3.8.1</version>
  6. </dependency>

2.写代码(因为自动化测试速度极快,每个步骤后都稍微停顿了下方便看效果)

  1. package com.testselenium;
  2.  
  3. import java.util.concurrent.TimeUnit;
  4.  
  5. import org.openqa.selenium.By;
  6. import org.openqa.selenium.JavascriptExecutor;
  7. import org.openqa.selenium.WebDriver;
  8. import org.openqa.selenium.chrome.ChromeDriver;
  9.  
  10. public class AutoTest {
  11.  
  12. public static void main(String[] args) throws Exception {
  13. // 谷歌浏览器的驱动下载地址:https://chromedriver.storage.googleapis.com/index.html
  14. // 最新稳定版下载地址:https://chromedriver.storage.googleapis.com/index.html?path=2.40/
  15. System.setProperty("webdriver.chrome.driver", "D://selenium/chromedriver.exe");
  16. WebDriver webDriver = new ChromeDriver();
  17. // 火狐浏览器的驱动下载地址:https://github.com/mozilla/geckodriver/releases
  18. // System.setProperty("webdriver.gecko.driver", "D://selenium/geckodriver.exe");
  19. // WebDriver webDriver = new FirefoxFilter();
  20.  
  21. // webDriver.manage().window().maximize();
  22. // webDriver.manage().deleteAllCookies();
  23. // 与浏览器同步非常重要,必须等待浏览器加载完毕
  24. webDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
  25.  
  26. //打开目标地址
  27. webDriver.get("https://www.baidu.com");
  28.  
  29. Thread.sleep(1000);
  30. /*
  31. // webDriver.findElement(By.xpath("/html/body/div/div[1]/a")).click();
  32. // webDriver.findElement(By.cssSelector("html body div#app div.loginPage form.el-form.fromBox button.el-button.loginBtn")).click();
  33. webDriver.findElement(By.cssSelector(".head_wrapper > div#u1 > a:nth-child(1)")).click();
  34. Thread.sleep(1000);
  35. webDriver.findElements(By.className("a3")).forEach(x -> {
  36. System.out.println(x.getText());
  37. });
  38. */
  39. //输入关键字搜索
  40. webDriver.findElement(By.cssSelector("input#kw")).sendKeys("java");
  41. webDriver.findElement(By.cssSelector("input#su")).click();
  42. Thread.sleep(1000);
  43. webDriver.findElements(By.className("t")).forEach(x -> {
  44. System.out.println(x.getText());
  45. });
  46.  
  47. //暂停5秒钟后关闭
  48. Thread.sleep(5000);
  49. // webDriver.quit();
  50.  
  51. //跳转到我的博客
  52. Thread.sleep(3000);
  53. webDriver.get("https://www.cnblogs.com/zdz807");
  54.  
  55. Thread.sleep(1000);
  56. //打开标题为 下一页
  57. webDriver.findElement(By.partialLinkText("下一页")).click();
  58.  
  59. Thread.sleep(1000);
  60. //移动到底部
  61. //((JavascriptExecutor) webDriver).executeScript("window.scrollTo(0, document.body.scrollHeight)");
  62. //移动到指定的坐标(相对当前的坐标移动)
  63. ((JavascriptExecutor) webDriver).executeScript("window.scrollBy(0, 700)");
  64. Thread.sleep(1000);
  65. //移动到窗口绝对位置坐标,如下移动到纵坐标1600像素位置
  66. ((JavascriptExecutor) webDriver).executeScript("window.scrollTo(0, 1600)");
  67. Thread.sleep(1000);
  68. //移动到指定元素,且元素底部和窗口底部对齐
  69. ((JavascriptExecutor) webDriver).executeScript("arguments[0].scrollIntoView(false);", webDriver.findElement(By.cssSelector("#ftCon")));
  70.  
  71. //暂停5秒钟后关闭
  72. Thread.sleep(5000);
  73. webDriver.quit();
  74.  
  75. }
  76. }

Starting ChromeDriver 2.40.565498 (ea082db3280dd6843ebfb08a625e3eb905c4f5ab) on port 38505
Only local connections are allowed.
七月 27, 2018 7:42:47 下午 org.openqa.selenium.remote.ProtocolHandshake createSession
信息: Detected dialect: OSS
java.com: Java 与您官网
Java_百度百科
Java SE Development Kit 8 - Downloads
Java 教程 | 菜鸟教程
java吧_百度贴吧
Oracle Technology Network for Java Developers | Oracle ...
Java - ImportNew
Java 运算符 | 菜鸟教程
ImportNew - 专注Java & Android 技术分享
Java SE - Downloads | Oracle Technology Network | Oracle
深圳java学习难吗_java培训多久能学会?
java 菜鸟也能学的Java 4个月挑战月薪上万
java-中国数万程序员的选择-官方首页
java深圳菜鸟也能学的java 4个月挑战月薪上万

selenium-java web自动化测试工具抓取百度搜索结果实例的更多相关文章

  1. PHP网络爬虫实践:抓取百度搜索结果,并分析数据结构

    百度的搜索引擎有反爬虫机制,我先直接用guzzle试试水.代码如下: <?php /** * Created by Benjiemin * Date: 2020/3/5 * Time: 14:5 ...

  2. C#+Selenium抓取百度搜索结果前100网址

    需求 爬取百度搜索某个关键字对应的前一百个网址. 实现方式 VS2017 + Chrome .NET Framework + C# + Selenium(浏览器自动化测试框架) 环境准备 创建控制台应 ...

  3. java使用htmlunit工具抓取js中加载的数据

    htmlunit 是一款开源的java 页面分析工具,读取页面后,可以有效的使用htmlunit分析页面上的内容.项目可以模拟浏览器运行,被誉为java浏览器的开源实现.这个没有界面的浏览器,运行速度 ...

  4. 使用轻量级JAVA 爬虫Gecco工具抓取新闻DEMO

    写在前面 最近看到Gecoo爬虫工具,感觉比较简单好用,所有写个DEMO测试一下,抓取网站 http://zj.zjol.com.cn/home.html,主要抓取新闻的标题和发布时间做为抓取测试对象 ...

  5. 使用python抓取百度搜索、百度新闻搜索的关键词个数

    由于实验的要求,需要统计一系列的字符串通过百度搜索得到的关键词个数,于是使用python写了一个相关的脚本. 在写这个脚本的过程中遇到了很多的问题,下面会一一道来. ps:我并没有系统地学习过pyth ...

  6. web自动化测试---自动化脚本设置百度搜索每页显示条数

    前面学的都是基础知识,本篇将进入实战练习 以百度“搜索设置”为对象进行测试用例的写作: 百度的搜索设置在首页的“设置”里面,鼠标悬停之后即可显示,如下图红框位置: 测试目标是,修改每页的显示条数为50 ...

  7. python爬取百度搜索结果ur汇总

    写了两篇之后,我觉得关于爬虫,重点还是分析过程 分析些什么呢: 1)首先明确自己要爬取的目标 比如这次我们需要爬取的是使用百度搜索之后所有出来的url结果 2)分析手动进行的获取目标的过程,以便以程序 ...

  8. 开源Web自动化测试工具Selenium IDE

    Selenium IDE(也有简写SIDE的)是一款开源的Web自动化测试工具,它实现了测试用例的录制与回放. Selenium IDE目前版本为 3.6 系列,支持跨浏览器运行,所以IDE的UI从原 ...

  9. Python抓取百度百科数据

    前言 本文整理自慕课网<Python开发简单爬虫>,将会记录爬取百度百科"python"词条相关页面的整个过程. 抓取策略 确定目标:确定抓取哪个网站的哪些页面的哪部分 ...

随机推荐

  1. UIView和layer的区别

    每个 UIView 内部都有一个 CALayer 在背后提供内容的绘制和显示,并且 UIView 的尺寸样式都由内部的 Layer 所提供.两者都有树状层级结构,layer 内部有 SubLayers ...

  2. rpm 安装软件包

    RPM 是RedHat Package Manager (RedHat软件包管理工具)类似windows里面的“添加/删除程序”,rpm执行安装包 RPM执行安装.删除.更新 常用命令组合 -ivh: ...

  3. dedecms如何去除后台登陆验证码

    用dedecms批量建站一般直接把文件打包复制,然后导入数据库,一个新网站就好了,但有时后台一直无法登录,提示验证码错误.那我们就想怎么把验证码关闭,现在就给大家解决织梦去掉后台登陆验证码.我们知道d ...

  4. iOS App让自己的应用在其它应用中打开列表中显示

    像百度网盘等应用,里面的文件打开时,都能够通过以下应用再打开文件.以下红色框框内的我的jpg就是我做的一个样例. 由于样例没有提供Icon,所以显示的是默认icon.   以下就是这样例的主要步骤和代 ...

  5. pycharm如何设置注释的字体颜色

    一.pycharm如何设置注释的字体颜色 1.打开pycharm编辑器,file > settings > Editor > Color Scheme > python > ...

  6. 007-atomic包的原理及分析

    一.Atomic简介 Atomic包是java.util.concurrent下的另一个专门为线程安全设计的Java包,包含多个原子操作类.这个包里面提供了一组原子变量类.其基本的特性就是在多线程环境 ...

  7. 快学Scala 1

      1. Scala解释器读到一个表达式,对它进行求值,将它打印出来,接着再继续读下一个表达式.这个过程被称作“读取-求值-打印-循环”,即REPL.   2. 从技术上来讲,scala程序并不是一个 ...

  8. eclipse配置新约束

    一.DTD格式的约束: 二.xsd格式的

  9. 【LeetCode每天一题】Next Permutation(下一个排列)

    Implement next permutation, which rearranges numbers into the lexicographically next greater permuta ...

  10. 命令行方式调用winrar对文件夹进行zip压缩示例代码

    调用winRAR进行压缩 using System; using System.Collections.Generic; using System.Linq; using System.Text; u ...