课前说明:本章节请求的 url 部分用 ** 代替
本章节需要掌握的知识点:
selenium工具是使用。
介绍:
selenium是一种用于web程序测试的工具,selenium测试的代码可以直接运行在浏览器中,就像真正的用户操作一样。
在写python爬虫的时候,主要是用 selenium 的 webdriver 来驱动浏览器进行相关的操作
本章节用到的浏览器为谷歌浏览器。
首先需要安装 chromedriver:谷歌浏览器驱动
加载方法如下:
方法一:driver = webdriver.Chrome(r'/Users/fanjianbo/Desktop/chromedriver')
方法二:把 chromedriver 的目录配成环境变量路径,然后:driver = webdriver.Chrome()
【注意】chromedriver的版本要和chrome浏览器相对应,不然很多功能不能用 !!!
下载操作谷歌浏览器驱动的页面:http://chromedriver.storage.googleapis.com/index.html
或者http://npm.taobao.org/mirrors/chromedriver/2.37/
谷歌驱动和谷歌浏览器版本之间的映射表:
http://blog.csdn.net/huilan_same/article/details/51896672
查看谷歌浏览器版本:打开浏览器 -> 找到又上角的 “三点” 点击 -> 找到 “帮助” -> 关于 Google Chrome 点击即可查看当前版本
selenium示例:
from selenium import webdriver
from time import sleep
# 加载驱动文件
driver = r"/home/**/Downloads/chromedriver"
# 创建浏览器的驱动对象
browser = webdriver.Chrome(executable_path=driver)
# 用浏览器发起一个请求
browser.get('https://www.bai**.com')
# 点击页面上的某个标签
btn = browser.find_element_by_link_text('新闻')
# 睡眠1秒,注意:睡眠是非常必要的哦,防止请求过于频繁导致服务器奔了
sleep(1)
# 点击
btn.click()
sleep(1)
# 取出网页的源码,这个源码就是经过浏览器解析并且运行以后生成的html源码
html = browser.page_source
# print(html)
# 向输入框中输入内容
browser.find_element_by_id('ww').send_keys('木子李')
browser.find_element_by_id('s_btn_wr').click()
sleep(1)
muzili_html = browser.page_source
# 退出浏览器(要记得退出浏览器哦!)
browser.quit()
selenium中元素查找:
find_element_by_id()
find_element_by_name()
find_element_by_xpath()
find_element_by_tag_name()
find_element_by_class_name()
find_element_by_css_selector()
find_element_by_link_text()
注意:
- find_element()只会查找页面符合条件的第一个节点,并返回;但是定位不到元素则会报错。
- find_elements()查找多个元素并且返回一个列表,列表里的元素全是WebElement节点对象;当定位不到元素时不会报错,会返回一个空列表。
事件
click() 点击
send_keys()
switch_to_alert()
温馨提示:多动手动脑才能记得住哦n(*≧▽≦*)n!