一、Selenium

  1. selenium是什么

Selenium [1] 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。

在python爬虫可以简单的理解为:Selenium就是模仿人使用浏览器

  1. 如何下载或者是安装selenium

    cmd进入win终端,输入命令

    pip install selenium

二、ChromeDriver

  1. ChromeDrive是什么

    这个和JDBC类似,就是Selenium操作Chrome浏览器的驱动。同理Selenium操作Firefox浏览器就需要geckodriver,操作IE浏览器需要IEDriverServer驱动。

  2. 如何下载或者安装ChromeDriver

    注意:ChromeDriver要和自己使用的chrome版本一致

    注意:ChromeDriver要和自己使用的chrome版本一致

    注意:ChromeDriver要和自己使用的chrome版本一致

    2.1 查询自己chrome的版本

    ​ 地址栏输入:

    chrome://version/

    比如我的是:80.0.3987.149

    2.2 下载ChromeDriver

    地址栏:

    https://npm.taobao.org/mirrors/chromedriver/

    这里可能有人要问,不是最后一位不一样吗?

    答:的却,但是我估计只要前三位相同应该都可以的。有兴趣的同学可以试一下哈

    点击进去,下载对应的OS版本,比如我的是win电脑,我就下载第三个。

2.3 下载好之后,解压,把chromedriver.exe放到任意位置都可以。但是有要求:

  • 路径上不能有中文
  • 存放的路径不需要特殊权限

这样就可以了,接下来我们来测试一下。


三、测试

  1. 直接看代码

    from selenium import webdriver #导入必要的库
    #功能需求:模仿人类使用搜索框进行搜索
    # 业务分析:在搜索框中输入“关键字”,点击“百度一下”或者是“回车” #chromedriver.exe的存放路径
    driver_path=r"C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe" # 通过webdriver对象的Chrome方法【不同的浏览器对应不同的方法】,获取到chromedriver.exe
    driver = webdriver.Chrome(executable_path=driver_path) # 访问百度
    driver.get("http://www.baidu.com") # 根据页面的id值定位到搜索框的
    input_tag = driver.find_element_by_id("kw") #假如我们搜索“java”
    input_tag.send_keys("java") # 根据页面id获取到“百度一下”按钮
    submit_btn = driver.find_element_by_id("su") #这个方法其实就是模仿人们点击“百度一下”按钮或者是“回车”
    submit_btn.click()
  2. 运行代码。它会自动打开浏览器并自动输入“java”,并回车。

  3. 看效果


四、为什么要用它——Selenium

答:因为有很多网站的数据都是异步请求(Ajax)加载数据的,我们直接爬取是获取不到数据的。因此我们使用selenium爬取返回来的页面是已经经过浏览器解析好的页面,我们再通过使用Xpath、bs4等,就可以爬取自己想要的数据了。

最新文章

  1. CSS实现DIV超长截断,并显示...
  2. 用iftop监控流量
  3. JavaScript - 时间函数
  4. MFC Windows程序设计源代码免费下载
  5. Android(java)学习笔记120:Android中的Application类用法
  6. 解决IE6,IE7不能隐藏绝对定位溢出的内容
  7. 网站安全分析:恶意DOS脚本日志分析报告
  8. Python 2.7 学习笔记 基本语法和函数定义
  9. 内容中断随想录(risc cpu的那些事)
  10. at 定时任务
  11. Spring Boot快速入门
  12. 【深入Java虚拟机】之一:Java内存区域与内存溢出
  13. 关于metaclass,我原以为我是懂的
  14. CentOS安装glibc-2.14
  15. java中int和integer
  16. J2EE笔记
  17. iis7.5 配置伪静态
  18. oracle数据库误删的表以及表中记录的恢复
  19. 利用JDK自带的keytool生成SSL证书然后导入到SpringBoot
  20. 安卓APP简单后端的搭建

热门文章

  1. Android实习生 —— 屏幕适配及布局优化
  2. oracle中group by 和order by同时存在时
  3. O2O倒逼汽车行业改革:服务超越销售成重心
  4. Windows 10 右键 在此处打开 CMD
  5. czC#02
  6. 初窥Mybatis初始化
  7. HBuilder-X 关闭eslint-vue 插件语法检查
  8. 数据结构 4 时间复杂度、B-树 B+树 具体应用与理解
  9. seo搜索优化教程09 - seo搜索优化外链优化
  10. vs远程调试iis