selenium

简介

  • 是一个基于浏览器自动化的模块。它比requests模块的爬取效率低很多
  • 帮我们便捷的爬取到页面中动态加载出来的数据
  • 模拟登陆
  1. 安装: pip install selenium
  2. 下载对应的驱动程序。 http://chromedriver.storage.googleapis.com/index.html
百度搜索美女
  • 通过find系列的方法,定位到标签
  • 若window.navigator.webdriver的返回值为undifunde,则没有反sele机制
from selenium import webdriver
from time import sleep

 #火狐浏览器用法
driver = webdriver.Firefox() 
 #谷歌浏览器用法
# driver = webdriver.Chrome(executable_path='./chromedriver.exe') 

driver.get("https://www.baidu.com/")
sleep(1)

#find_element_by_id 定位 id=kw 的标签 ,send_keys 输入内容
driver.find_element_by_id('kw').send_keys('美女')
sleep(1)
# 定位 id=su  的标签, click 点击
driver.find_element_by_id('su').click()
sleep(1)
# find_elements_by_link_text 通过链接文本查找元素,click点击
driver.find_elements_by_link_text('美女_百度图片')[0].click()
sleep(1)

# 关闭浏览器
driver.quit()
# 关闭浏览器

列举常见的selenium模块的方法及其作用

  • get(url)
  • find系列的函数进行标签定位
  • send_keys(‘key’)
  • click()
  • excute_script(‘jsCode’)注入 js 语句
  • page_source #获取 htm 代码
  • switch_to.frame('iframeID') #若节点被包含在iframes节点之中的,则必须使用switch_to进行frame的切换
  • quite()
  • save_screenshot()
  • a = ActionChains(bro)
  • a.click_and_hold('tag') #点击并按住
  • tag.move_by_offset(x,y).perform() #根据坐标进行移动,perform 是立即执行

截图操作

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')  # 无头
chrome_options.add_argument('--disable-gpu')

br = webdriver.Chrome(executable_path='./chromedriver', chrome_options=chrome_options)
br.set_window_size(1050, 1430)


def _pic(name):
    br.get('file:///Users/gaowangli/Desktop/other/test.htm')
    # 截取当前窗口,并指定截图图片的保存位置
    path = './%s.png' % (name)
    br.get_screenshot_as_file(path)  # 截图操作
    br.quit()

if __name__ == '__main__':
    name = 'test'
    _pic(name)
posted @ 2021-08-10 13:49  Tank-Li  阅读(29)  评论(0编辑  收藏  举报