selenium模块

"""
目前使用requests模块可以完成大部分爬虫功能,
但是当你目标网站的请求流程非常复杂时,分析请求流程需要花费大量的时间.

selenium模块
是一个自动化测试模块,主要用于测试页面的稳定性
与爬虫的关系
通过selenium模块可以直接操作浏览器来完成与服务器的交互,爬虫程序中就
不需要关系具体请求细节

使用步骤
1.安装selenium
2.浏览器的驱动程序

"""

# import selenium

from selenium import webdriver
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By #按照什么方式查找,By.ID,By.CSS_SELECTOR
from selenium.webdriver.common.keys import Keys #键盘按键操作
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait #等待页面加载某些元素


# chrome_options = Options()# 创建一个浏览器选项
# chrome_options.add_argument('window-size=1920x3000') #指定浏览器分辨率
# chrome_options.add_argument('--disable-gpu') #谷歌文档提到需要加上这个属性来规避bug
#
# chrome_options.add_argument('--hide-scrollbars') #隐藏滚动条, 应对一些特殊页面
# chrome_options.add_argument('blink-settings=imagesEnabled=false') #不加载图片, 可以提升速度
# chrome_options.add_argument('--headless') #浏览器不提供可视化页面. linux下如果系统如果无界面不加这条会启动失败

# 如果你的驱动程序在系统的环境变量找那个 无需指定路径
# 指定驱动程序绝对路径
# 指定浏览器的选项option
# driver = webdriver.Chrome(r"D:\脱产三期视频\爬虫3\chromedriver.exe",options=chrome_options)
driver = webdriver.Chrome(r"D:\脱产三期视频\爬虫3\chromedriver.exe")
driver.get("https://www.baidu.com")

# 找到输入框
tag = driver.find_element_by_id("kw")
print(tag)
# 输入关键字
tag.send_keys("老男孩")

# time.sleep(2)

# 隐式等待 在浏览器加载页面 最长等待时间为20秒
# 这种方式的问题是 就算你要找的元素已经加载完成了,也需要等待整个页面加载完成
# driver.implicitly_wait(20)

# 显示等待 不断重复查找某个元素直到找到为止
# 10是超时时间
# 0.5轮询的间隔时间
wait = WebDriverWait(driver, 10,0.5)
wait.until(EC.presence_of_element_located((By.ID, '3'))) # 等到id

# 从搜索结果页面获取某个标签
# content = driver.find_element_by_id("3")




# print(content)

# 一顿操作后 关闭浏览器
# driver.close()









posted @ 2019-01-23 19:33  不沉之月  阅读(200)  评论(0编辑  收藏  举报