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. Spring整合Hessian的使用

    该文章转赞自  https://www.cnblogs.com/ontheroad_lee/p/3797239.htm 个人感觉写的非常好,刚学习,先记录下来 1.1     Hessian简介 He ...

  2. 如何使windows7的默认共享可以被访问[转载]

        因为UAC的存在, 如果使用windows 7 的默认共享,比如 \abcc$ ,会被提示 无权限错误. 为了方便在局域网共享文件,找到了这个方法. Open the registry edi ...

  3. Asp.Net Zero通用打印实现

    Asp.Net Zero是一款非常优秀的web框架,可以用来快速构建业务系统.框架满足了业务系统所需的大部分通用功能,但是系统必须的打印报表功能一直没有实现.下面给大家介绍如何在zero中集成打印功能 ...

  4. springboot集成redis使用redis作为session报错ClassNotFoundException类RememberMeServices

    springboot 集成redis使用redis作为缓存,会报错的问题. 错误信息: java.lang.IllegalStateException: Error processing condit ...

  5. zencart后台管理中选项名称和选项内容和属性控制页面出错解决办法 WARNING: An Error occurred, please refresh the page and try again

    后台管理中选项名称和选项内容和属性控制出现以下错误的解决办法WARNING: An Error occurred, please refresh the page and try again zen ...

  6. Summer training #2

    A:不管有没有负数 一顿操作之后肯定只有正数 又因为A=A-B 所以最大值是一直在减小的 所以一定有结果 B:..一开始以为求min操作数 WA了2发 直接求所有数的GCD如果所有数的GCD都不是1的 ...

  7. Cmd有关IP的部分命令

    ping命令判断系统数据包在传送的时候至少会经过一个以上的路由器,当数据包经过一个路由器的时候,TTL就会自动减1,如果减到0了还是没有传送到目的主机,那么这个数据包就会自动丢失,这时路由器会发送一个 ...

  8. 第七章 路由 77 路由-使用children属性实现路由嵌套

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  9. iOS View的一些操作定义为宏

    #define ViewOf(__View__,__TAG__) [__View__ viewWithTag:__TAG__]#define LabelOf(__View__,__TAG__) ((U ...

  10. Linux磁盘分区的实用管理命令

    系统环境:Centos6.7 命令信息: 1.lsblk  列出分区信息,可以查看分区的光在目录和使用情况  (读取内存中的分区表信息) 2.fdisk 用来创建MBR分区(也可以创建GPT分区,但是 ...