python爬虫Selenium+chrome介绍

Selenium相当于一个机器人。可以模拟人类在浏览器上的一些行为。自动处理浏览器上的一些行为,比如点击、填充数据、删除cookie等等这一系列操作。chromedriver是一个驱动chrome浏览器的驱动程序,使用他才可以驱动浏览器。
所以我们要对其进行下载,这里我们把安装程序放在我的下载资源当中。
然后我们先来看一个简单的使用chromedriver访问百度的一个例子。

from selenium import webdriver
driver_path=r'安装chromedriver的路径'#可有可无,有的电脑需要有的不需要
driver=webdriver.chrome(executable_path=driver_path)
driver.get('http://www.baidu.com/')
print(driver.page_source)

这里就是使用chromedriver访问百度的一个例子。
下面我们继续介绍一些基本使用:
driver.close():关闭当前页面。
driver.quit():退出整个浏览器。
比如可以这么写:

import time 
time.sleep(4)
driver.close() 

使用selenium定位元素:

  1. find_element_by_id:根据id来查找到某个元素。
  2. find_element_by_class_name:根据类名查找某个元素。
  3. find_element_by_name:根据name属性查找某个元素。
  4. find_element_by_tag_name:根据标签名来查找元素。
  5. find_element_by_xpath:根据xpath语法来获取元素。
  6. find_element_by_css_selector:根据css语法来获取元素。
  7. find_element:获取第一个满足条件的元素。
  8. find_elements:获取所有满足条件的元素。

然后我们介绍一下selenium的操作表单元素,那么什么是表单元素呢,比如页面中的登录账号,密码等都属于表单元素。操作分为两步:

  • 找到这个输入元素的地方
  • 使用send_keys(value)将数据进行填充。

我们来介绍一个登录知乎的例子。

from selenium import webdriver
driver=webdriver.chrome('路径')
driver.get('知乎的url')
usernametag=drever.find_element_by_name('username')
usernametag.send_keys('18888888888')
passwordtag=driver.find_element_by_name('password')
passwordtag.send_keys('xxxxxx')
submitbtn=driver.find_element_by_class_name('SignFlow-submitButton')
submitbtn.click()#click()是点击的意思找到登录按钮然后点击它

这里我们大概的完成了表单教学。

然后我们继续介绍是否选中的操作,同上(就是我们常说的打勾的✔操作):
我们这里以豆瓣为例子

from selenium import webdriver
driver=webdriver.chrome('路径')
driver.get('豆瓣的url')
check_box=driver.find_element_by_name('remember')
chick_box.click()

然后我们介绍一下标签选择,我们这里以南昌大学得标签选择为例。
使用select不能直接点击,需要选择元素如下:

from selenium.webdriver.support.ui import Select
selecttag=Select(driver.find_element_by_name('jumpMenu'))
selecttag.select_by_index(1)#根据索引选择
#或者
selecttag.select_by_value('数值')#知道源码中得value数值
selecttag.select_by_visible_text('95秀客户端')#通过可视化得文字部分直接访问

click_and_hold():是指代点击不松开
double_click():双击
selenuim得显示等待和隐式等待:

隐式等待

from selenium import webdriver
driver=webdriver.chrome('路径')
driver.get('百度url')
driver.implicitly_wait(10)
driver.find_element_by_id('abcd')

显式等待
显示等待表明某个条件成立之后执行获取元素得操作,也可指定一个最大时间,如果超出了则显示异常。

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected conditions as EC
driveer.get('12306url')
WebDriverWait(driver,100).until('中间添加等待得条件')
    

selenium打开和切换窗口
有时候窗口会有很多页面,是需要切换得,selenium提供了一个叫做switch_to_window来进行切换。

self.driver.switch_to_window(self.driver.window_handles[1])

关于selenium得相关知识我们今天就介绍这么多!下一期我们进入实战部分。
学海无涯苦作舟!!!
没有任何一个成功是别人口中所谓得我就学了一点点就去做别的事了,最后考了这么好,这句话就像是现在有一句话叫做能教你赚钱得都不是写在书里一个道理。
最后加油呀!!!

你可能感兴趣的:(python,chrome,爬虫)