使用selenium自动化测试工具进行页面信息的抓取遇到的坑

为什么选择使用selenium?

  • selenium是一个Web程序测试工具,selenium能解析js,而我平常写的简单爬虫都是爬静态页面,即原始的html,当js改变html的元素时,如果依照原来的那个爬取的html来弄就会出错。
  • selenium支持多种浏览器,Chrome,Firefox,Phantomjs(已经被弃用了,可以使用其他浏览器的无头模式)。重要的事说三遍,Chrome是真的快!Chrome是真的快!Chrome是真的快!,比Phantomjs不知快到哪里去了。

基本使用方法

  • 详见官网文档:http://selenium-python.readthedocs.io/navigating.html#filling-in-forms
  • 常用的几个定位html里面的元素,通过css查找,通过xpath查找,通过tagname查找等。要注意它们的函数都有两个版本,element和elements,一个是返回单个对象,一个是返回列表。

遇到的问题

  • “selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element”这个问题是Chrome浏览器和驱动版本不一致造成的,每个驱动支持不同浏览器的版本。详情见http://chromedriver.storage.googleapis.com/index.html。目前最新版的是2.34支持Google的63版本浏览器,比较坑的是它最后面的小数才是标记最新的,像2.9都是比较老的。

你可能感兴趣的:(数据挖掘)