selenium在python中的应用:
1.selenium可以完全模拟浏览器操作,对动态数据进行获取。动态数据由代码生成,在页面初始化的过程当中是没有的,也无法获取,但是可以通过selenium来获取。
2.有些数据是需要进行登录以后才能获取的,比如好友列表,评论,消费记录。。。登陆以后获取cookie才能进行以上的操作,但是使用selenium以后可以避免人工登录,只需要登录账号密码即可实现selenium代替登录。
一.打开终端,安装selenium:
pip install selenium
二.下载对应的驱动
火狐驱动:https://github.com/mozilla/geckodriver/releases/
谷歌驱动:http://chromedriver.storage.googleapis.com/index.html
下载解压后,将chromedriver.exe , geckodriver.exe , 移动到Python的安装目录,例如 D:\python\Anaconda\Scripts 。 然后再将Python的安装目录添加到系统环境变量的Path下面。
三.测试是否成功
打开pycharm,输入以下命令
启动谷歌浏览器
from selenium import webdriver
driver = webdriver.Firefox()
driver.get(‘http://www.baidu.com’)
driver.find_element_by_id(‘kw’).send_keys(‘selenium’)
启动火狐浏览器
from selenium import webdriver
driver = webdriver.Chrome()
driver.get(‘http://www.baidu.com’)
driver.find_element_by_id(‘kw’).send_keys(‘selenium’)
报错原因:selenium由网页驱动驱使浏览器进行操作,速度慢是一大特点。经常会出现代码执行完了,但是网页内容还没有加载完毕,里面的标签还没有显示出来,如果这时候操作里面的标签就会报出异常 NoSuchElementExpection
解决的方法:时间休眠 time.sleep()
缺点:不管页面的内容有没有加载完毕,一定要休眠够指定的秒数
启动谷歌浏览器
import time
from selenium import webdriver
driver = webdriver.Firefox()
driver.get(‘http://www.baidu.com’)
time.sleep(10)
driver.find_element_by_id(‘kw’).send_keys(‘selenium’)
启动火狐浏览器
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get(‘http://www.baidu.com’)
time.sleep(10)
driver.find_element_by_id(‘kw’).send_keys(‘selenium’)
作者:子弹滞销帮帮我们
来源:优快云
原文:https://blog.youkuaiyun.com/qq_41949802/article/details/81295904
版权声明:本文为博主原创文章,转载请附上博文链接!