关于在python中selenium的安装及应用方法

    在python中,selenium完全可以模拟人对浏览器的操作,对动态数据进行获取,动态数据是由代码生成,在页面初始化的过程中无法正常获取,但是,通过selenium却可获取,但是有些数据必须要登录之后才能获取,例如,好友列表、评论。消费记录等等...登陆以后获取cookie,才能进行以下操作,但前提是有账号密码方可实现selenium代替登录。

    selenium的特点是:

         1.程序控制浏览器进行操作

         2.在程序控制浏览器进行操作的时候,速度会非常慢,因此也要谨慎使用selenium(或者设置延时登录 time.sleep(3))

         3.在使用sellenium的时候控制浏览器的时候,需要下载浏览器对应的驱动程序

         4.要使用selenium的时候,要时刻注意selenium和浏览器之间的关系

    对selenium的安装进行步骤操作:

        1.在终端打印  pip install selenium

        2.在浏览器搜索 geckodriver,获取下载地址https://github.com/mozilla/geckodriver/releases,打开这个网址后

        在看到这个页面时,我们选择3.76M那个或者是这个压缩包 geckodriver-v0.21.0-win64.zip,点击下载后,

我们双击压缩包将压缩包解压到桌面。

        在浏览器输入chromedriver,我们点击,下载chromedriver地址 - ChromeDriver Mirror

在打开之后是这样的一个图:

我们选择最新版本点击进入,这个图是2.41那个,进去之后是一个新页面,如下:

点击32位的进行下载,将压缩包双击压缩到桌面,将以上两个都放到桌面后,我们打开anacoda所在位置,打开scrips文件夹,将桌面的这两个解压后的exe 复制到里面,关闭pycharm,然后重新打开即可;

        在pycharm内我来分析下最基本的操作,

首先,我们导入selenium,然后进行一些其他操作;

from selenium import webdriver

driver = webdriver,Fixfox()(使用网络驱动运行火狐浏览器)

driver.get('http://www.baidu.com')(通过驱动来执行指定的网页)

# selenium 提供了找到元素的方法find_element_by_XXXX,以下为实例,如果只是想对这个元素进行查找,定位 建议使用,xpath或者css_selecotor#,find 找到  element元素;节点;标签 by 通过

通过id来找

driver.find_element_by_id('指定id').send_keys('在搜索栏输入的内容,要是英文')

通过name来查找

drvier.find_element_by_name('wd').send_keys('csdn')

unicode如果后面有中文,那么前面要加个u

driver.find_element_by_class_name('s_ipt').send_keys(u'中国')

通过标签名

driver,.find_element_by_tag_name(‘input’)

selector 选择器  #id  .类名

driver.find_element_by_css_selector('#kw')

通过xpath语法定位一个元素

driver.find_element_by_xpath('//form[@id="form"]/span/input[@id="kw"]')

link 连接

driver.find_element_by_link_text('贴吧')

driver.close()(这个最好加上,有开始就有结束)

2.模拟登陆  美食杰

from selenium import webdriver

import time

driver = webdriver.Firefox()

drivrt.get('登录页面的网址')

time.sleep(3)(添加休眠时间,减少出错率)

driver,find_element_by_name('nameuser').send_keys('[email protected]')

driver.find_element_by_name('password').send_keys('542999')

这是点击登录那个按钮的操作

driver.find_element_by_xpath('//div//[@class="nl_loginitem"]/input[@class="submit"]').click()

猜你喜欢

转载自blog.csdn.net/UserAgent123/article/details/81291060
今日推荐