爬虫之selenium的使用

驱动的安装:

1.在http://npm.taobao.org/mirrors/chromedriver/中寻找chrome的驱动,进行安装
2.windows中将chrome.exe加入环境变量中
3.再把下载的chromedriver复制粘贴到你安装的python的Scripts目录下,

测试是否安装成功:

from selenium import webdriver
browser = webdriver.Chrome()

selenium的安装:

pip3 install selenium

1.打开一个网页

browser.get(url)

browser.get(“https://www.baidu.com”)

2.对元素进行查找定位

browser.find_element()

通过下面几种方式进行查找定位

login_form = driver.find_element_by_xpath("/html/body/form[1]")
login_form = driver.find_element_by_id('loginForm')
username = driver.find_element_by_name('username')
continue_link = driver.find_element_by_link_text('Continue')
heading1 = driver.find_element_by_tag_name('h1')
content = driver.find_element_by_class_name('content')
content = driver.find_element_by_css_selector('p.content')

3.等待

有的时候元素的出现需要等待一段时间,等元素加载完成后才开始进行下一步的操作,或者为了防止操作过于频繁,这个时候就需要用到等待了

显示等待
driver = webdriver.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )

上面这种情况就是等待ID为"myDynamicElement"的出现,如果等待10秒后没有出现,那么就报异常

隐示等待

隐式等待在执行动作或者定位元素之前,为浏览器对象创建一个等待时间,期间会一直刷新页面去寻找我们需要的元素

driver.implicitly_wait(10)
driver.find_element_by_name().send_keys()

上述这段代码为等待10秒

显示等待与隐式等待的区别?

显示等待为有条件的等待
隐式等待为没有条件的等待
也就是显示等待会判断某个元素有没有满足我们的要求,也就是能不能定位,能不能可视化,而隐式等待适用于整个页面的元素有没有出现

好了, 有了这上面的应该就够用了,其他的可以找selenium的API来查找,链接如下selenium-python文档

发布了30 篇原创文章 · 获赞 5 · 访问量 6840

猜你喜欢

转载自blog.csdn.net/weixin_43800002/article/details/102854296