最近学习用selenium来做简单爬虫,新手问题太多了,自学编程确实坑比较多,最简单的一个例子,就是忘记了使用xpath之前必须先通过etree来实例化对象,浪费很多时间。这篇文章会陆续更新我在使用selenium过程中遇到的一些坑。
1、获得网页源码后解析内容必须先实例化
python使用任何一个函数或者模块,必须先实例化后再使用,这其实是一个基本常识,但是新手就是容易忘记,比如我通过selenium的page_text = bro.page_source获得了网站源码,然后我就直接page_text.xpath开始解析内容了,提示错误,这个问题困扰我好几天,最后发觉是xpath必须先实例化才行,前面看视频教程,都只简单看了下,忘记了。想要解析源码,
先要导入from lxml import etree导入模块
然后tree = etree.HTML(page_text)实例化对象
然后就可以正常用xpath解析了。
2、selenium获取不到元素错误
常见错误selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element:
这个要不是定位错误了,要不就是页面还没解析出来就开始定位,解决办法很简单,用sleep先停几秒然后再开始操作。
import time,然后在定位元素之前time.sleep(2),也就是停留几秒,等页面充分打开后再开始操作即可。
3、有些网站selenium 打开的窗口和直接打开窗口,xpath不一样,在selenium打开的窗口中找xpath才不会出错
4、selenium关闭窗口方法
web.close()关闭当前打开窗口
web.quit()关闭所有窗口