1. 网页的打开

from selenium import webdriver
import time driver = webdriver.Chrome(executable_path=r"C:\Users\qq302\Desktop\chromedriver.exe") # 1.打开浏览器
driver.get('https://www.baidu.com/')

2.网页浏览器的关闭

from selenium import webdriver
import time driver = webdriver.Chrome(executable_path=r"C:\Users\qq302\Desktop\chromedriver.exe")
driver.get('https://www.baidu.com/')
time.sleep(5)
driver.close() # 关闭当前网页
driver.quit() # 关闭整个浏览器

3. 关于内容元素分析

from selenium import webdriver
import time driver = webdriver.Chrome(executable_path=r"C:\Users\qq302\Desktop\chromedriver.exe")
driver.get('https://www.baidu.com/')
# 使用id进行查找
inputTag = driver.find_element_by_id('kw')
# 使用class_name 进行查找
inputTag = driver.find_element_by_class_name('s_ipt')
# 使用xpath 进行查找
inputTag = driver.find_element_by_xpath("//input[@id='kw']")
# 使用css解析器进行查找
inputTag = driver.find_element_by_css_selector('.s_ipt')
# 我们也可以使用By进行元素的查找
from selenium.webdriver.common.by import By inputTag = driver.find_element(By.ID, 'kw')
inputTag.send_keys('python') # 如果需要进行文本分析的话
from lxml import etree html = etree.HTML(driver.page_source)
print(html.xpath(''))

4. 操作表单元素

from selenium import webdriver
import time # 第一种:send_keys() 发送文本
driver = webdriver.Chrome(executable_path=r"C:\Users\qq302\Desktop\chromedriver.exe")
driver.get('https://www.baidu.com/')
inputTag = driver.find_element_by_id('kw')
inputTag.send_keys('python') # 向kw发送python
time.sleep(5)
inputTag.clear() # 进行输入的清除 # 第二种:进行点击操作
driver = webdriver.Chrome(executable_path=r"C:\Users\qq302\Desktop\chromedriver.exe")
driver.get('https://www.baidu.com/')
inputTag = driver.find_element_by_id('kw')
inputTag.send_keys('python') # 向kw发送python
time.sleep(5)
inputTag.click() # 进行输入的清除 # 第三种进行下拉框的操作
from selenium.webdriver.support.ui import Select
driver = webdriver.Chrome(executable_path=r"C:\Users\qq302\Desktop\chromedriver.exe")
driver.get('https://www.baidu.com/')
SelectBn = Select(driver.find_element_by_class_name('pf'))
SelectBn.select_by_index(1)
SelectBn.deselect_all()

5.行为链模仿鼠标进行移动,点击,双击操作

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time from selenium.webdriver.support.ui import Select
driver = webdriver.Chrome(executable_path=r"C:\Users\qq302\Desktop\chromedriver.exe")
driver.get('https://www.baidu.com/') inputTag = driver.find_element_by_id('kw')
submitBn = driver.find_element_by_id('su') actions = ActionChains(driver)
actions.move_to_element(inputTag) # 将鼠标进行移动 inputTag.send_keys('python') # 发送python文本
actions.click(submitBn) # 对百度一下进行点击
actions.perform() # 进行action操作 # click_and_hold(element) 右键点击且不松手
# context_click(element) # 右键点击
# double_click(element) # 进行双击操作

6. 对cookie进行操作,包括获取当前cookie,删除cookie

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time from selenium.webdriver.support.ui import Select
driver = webdriver.Chrome(executable_path=r"C:\Users\qq302\Desktop\chromedriver.exe")
driver.get('https://www.baidu.com/') for cookie in driver.get_cookies(): # 获得所有的cookie信息
print(cookie) driver.delete_cookie('BD_HOME') # 删除cookie
print(driver.get_cookie('BD_HOME')) # 获得当前的cookie值
driver.delete_all_cookies() # 删除所有的cookie值

7. 隐式等待和显示等待

# 隐式等待
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time from selenium.webdriver.support.ui import Select
driver = webdriver.Chrome(executable_path=r"C:\Users\qq302\Desktop\chromedriver.exe")
driver.get('https://www.baidu.com/')
# 隐式等待
driver.implicitly_wait(10) # 最长等待10秒
driver.find_element_by_id('kw').send_keys('python')
driver.find_element_by_id('su').click() # 显示等待, 如果在10秒内没有出现就爬出异常
# 显示等待
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Chrome(executable_path=r"C:\Users\qq302\Desktop\chromedriver.exe")
driver.get('https://www.baidu.com/')
try:
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, 'kw'))
)
finally:
print('end')

8. 进行窗口的切换driver.switch_to.window(driver.window_handles[1])

from selenium import webdriver

driver_path = r'C:\Users\qq302\Desktop\chromedriver.exe'
driver = webdriver.Chrome(executable_path=driver_path)
driver.get('https://www.baidu.com/') driver.execute_script("window.open('https://www.douban.com/')") # 打开豆瓣的网址
driver.execute_script('window.scrollTo(0, 1000000)')# 进行窗口的刷新移动
print(driver.window_handles) # 打印文件句柄
driver.switch_to.window(driver.window_handles[1]) # 切换driver的窗口
print(driver.current_url)

9.使用免费的代理ip打开网页

# 9 设置代理Ip
from selenium import webdriver options = webdriver.ChromeOptions()
options.add_argument('--proxy-server=http://61.189.242.243:55484') # 61.189.242.243表示ip, 55484表示端口号 driver = webdriver.Chrome(executable_path=r'C:\Users\qq302\Desktop\chromedriver.exe', options=options) driver.get(r'http://httpbin.org/ip') # 使用代理ip打开网页

10.webdriverElement补充操作

# 10. WebElement元素补充操作
from selenium import webdriver
from selenium.webdriver.remote.webelement import WebElement driver_path = r'C:\Users\qq302\Desktop\chromedriver.exe'
driver = webdriver.Chrome(executable_path=driver_path)
driver.get('https://www.baidu.com/') submitBn = driver.find_element_by_id('su')
print(submitBn.get_attribute('value')) # 获得当前的value属性
driver.save_screenshot('baidu.png') # 进行截图保存

selenium爬虫使用的更多相关文章

  1. Python爬虫之selenium爬虫,模拟浏览器爬取天猫信息

    由于工作需要,需要提取到天猫400个指定商品页面中指定的信息,于是有了这个爬虫.这是一个使用 selenium 爬取天猫商品信息的爬虫,虽然功能单一,但是也算是 selenium 爬虫的基本用法了. ...

  2. python爬虫---单线程+多任务的异步协程,selenium爬虫模块的使用

    python爬虫---单线程+多任务的异步协程,selenium爬虫模块的使用 一丶单线程+多任务的异步协程 特殊函数 # 如果一个函数的定义被async修饰后,则该函数就是一个特殊的函数 async ...

  3. 爬虫(十一):selenium爬虫

    1. selenium基础 selenium部分可以去看我写的selenium基础部分,由于链接太多了这里就不发出来了. 代理ip: 有时候频繁爬取一些网页.服务器发现你是爬虫后会封掉你的ip地址.这 ...

  4. Selenium爬虫实践(踩坑记录)之ajax请求抓包、浏览器退出

    上一篇: 使用Selenium截取网页上的图片 前言 最近在搞公司内部系统,累的一批,需要从另一个内部系统导出数据存到数据库做分析,有大量的数据采集工作,又没办法去直接拿到那个系统的接口,太难了,只能 ...

  5. Ubuntu下的Selenium爬虫的配置

    在服务器Ubuntu系统上跑爬虫,爬虫是基于Selenium写的,遇到好几个问题,现在这里记录一下. 1. 安装环境 阿里云,Ubuntu16.04,因为没有界面,所以远程命令行操作.爬虫是基于Sel ...

  6. Katalon Recorder 自动录制 Selenium 爬虫脚本

    相信很多小伙伴都用过 Selenium 来完成爬虫工作,今天就给大家带来一个神器,可以录制你的浏览器动作,然后直接生成 Selenium 脚本,是不是心动了? 1 Selenium 简介 Seleni ...

  7. selenium爬虫

    Web自动化测试工具,可运行在浏览器,根据指令操作浏览器,只是工具,必须与第三方浏览器结合使用,相比于之前学的爬虫只是慢了一点而已.而且这种方法爬取的东西不用在意时候ajax动态加载等反爬机制.因此找 ...

  8. 使用selenium爬虫抓取数据

    写在前面 本来这篇文章该几个月前写的,后来忙着忙着就给忘记了.ps:事多有时候反倒会耽误事.几个月前,记得群里一朋友说想用selenium去爬数据,关于爬数据,一般是模拟访问某些固定网站,将自己关注的 ...

  9. selenium爬虫入门(selenium+Java+chrome)

    selenium是一个开源的测试化框架,可以直接在浏览器中运行,就像用户直接操作浏览器一样,十分方便.它支持主流的浏览器:chrome,Firefox,IE等,同时它可以使用Java,python,J ...

  10. python selenium爬虫工具

    今天seo的同事需要一个简单的爬虫工具, 根据一个url地址,抓取改页面的a连接,然后进入a连接里面的页面再次抓取a连接 1.需要一个全局的set([])集合来保存抓取的url地址 2.由于现在单页面 ...

随机推荐

  1. docker一键搭建Nginx+PHP环境(含自动部署命令)

    文章的主要部分是一步一步的教程,文章的最后是我整理好的一键安装命令,自动下载并安装docker,构建镜像,启动容器集群(压缩包内注释覆盖范围达到80%) 大家可以看完教程亲自尝试下,也可以直接执行一键 ...

  2. python将list元素转为数字

    mask_x = ['11', '12', 13'] 方法1:for循环遍历 mask_x = [int(x) for x in mask_x] 方法2:map迭代 mask_x = list(map ...

  3. 逆向破解H.Koenig 遥控器 Part 2

    逆向破解H.Koenig 遥控器 Part 2 到目前为止,我们已经知道了RF收发器的安装过程,下面是我们所掌握的东西 : l 无线电收发器是一个Avantcom A7105 l 调制是FSK l 频 ...

  4. 初次安装虚拟机WindowsServer2016

    因学习需要,安装windosServer2016,遇到了几个小坑,特地分享一下. 一.windows server 2016 登录 在登录是会出现 输入CTRL+ALT+DEL,才能响应进入用户界面, ...

  5. jdk提供的线程协调API suspend/resume wait/notify park/unpark

    线程通信(如 线程执行先后顺序,获取某个线程执行的结果等)有多种方式: 文件共享 线程1 --写入--> 文件 < --读取-- 线程2 网络共享 变量共享 线程1 --写入--> ...

  6. HttpServletResponse 返回的json数据不是json字符串,而是json对象

    今天在改一个bug 情况: 在spring boot中写了一个类Result ,用来统一封装 各个API响应结果 , 其中重写了toString()方法来返回 json字符串 . 在正常情况下,从其它 ...

  7. Web Api(4)

    参考原文链接https://www.cnblogs.com/JamelAr/,本文大部分内容是根据这位博主进行实验测试的,非常感谢分享,另外也参考了https://www.cnblogs.com/vi ...

  8. git撤销pull命令

    1.运行git reflog命令查看你的历史变更记录 2.然后用git reset --hard HEAD@{n},(n是你要回退到的引用位置)回退. 比如上图可运行 git reset --hard ...

  9. 使用 Drag and Drop 给Web应用提升交互体验

    什么是 Drag and Drop (拖放)? 简单来说,HTML5 提供了 Drag and Drop API,允许用户用鼠标选中一个可拖动元素,移动鼠标拖放到一个可放置到元素的过程. 我相信每个人 ...

  10. Linux配置python环境2,安装python

    安装锁需要的依赖包 sudo apt-get -y install gcc-5 g++-5 libc6-dev make build-essential libssl-dev zlib1g-dev l ...