selenium爬虫使用
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爬虫使用的更多相关文章
- Python爬虫之selenium爬虫,模拟浏览器爬取天猫信息
由于工作需要,需要提取到天猫400个指定商品页面中指定的信息,于是有了这个爬虫.这是一个使用 selenium 爬取天猫商品信息的爬虫,虽然功能单一,但是也算是 selenium 爬虫的基本用法了. ...
- python爬虫---单线程+多任务的异步协程,selenium爬虫模块的使用
python爬虫---单线程+多任务的异步协程,selenium爬虫模块的使用 一丶单线程+多任务的异步协程 特殊函数 # 如果一个函数的定义被async修饰后,则该函数就是一个特殊的函数 async ...
- 爬虫(十一):selenium爬虫
1. selenium基础 selenium部分可以去看我写的selenium基础部分,由于链接太多了这里就不发出来了. 代理ip: 有时候频繁爬取一些网页.服务器发现你是爬虫后会封掉你的ip地址.这 ...
- Selenium爬虫实践(踩坑记录)之ajax请求抓包、浏览器退出
上一篇: 使用Selenium截取网页上的图片 前言 最近在搞公司内部系统,累的一批,需要从另一个内部系统导出数据存到数据库做分析,有大量的数据采集工作,又没办法去直接拿到那个系统的接口,太难了,只能 ...
- Ubuntu下的Selenium爬虫的配置
在服务器Ubuntu系统上跑爬虫,爬虫是基于Selenium写的,遇到好几个问题,现在这里记录一下. 1. 安装环境 阿里云,Ubuntu16.04,因为没有界面,所以远程命令行操作.爬虫是基于Sel ...
- Katalon Recorder 自动录制 Selenium 爬虫脚本
相信很多小伙伴都用过 Selenium 来完成爬虫工作,今天就给大家带来一个神器,可以录制你的浏览器动作,然后直接生成 Selenium 脚本,是不是心动了? 1 Selenium 简介 Seleni ...
- selenium爬虫
Web自动化测试工具,可运行在浏览器,根据指令操作浏览器,只是工具,必须与第三方浏览器结合使用,相比于之前学的爬虫只是慢了一点而已.而且这种方法爬取的东西不用在意时候ajax动态加载等反爬机制.因此找 ...
- 使用selenium爬虫抓取数据
写在前面 本来这篇文章该几个月前写的,后来忙着忙着就给忘记了.ps:事多有时候反倒会耽误事.几个月前,记得群里一朋友说想用selenium去爬数据,关于爬数据,一般是模拟访问某些固定网站,将自己关注的 ...
- selenium爬虫入门(selenium+Java+chrome)
selenium是一个开源的测试化框架,可以直接在浏览器中运行,就像用户直接操作浏览器一样,十分方便.它支持主流的浏览器:chrome,Firefox,IE等,同时它可以使用Java,python,J ...
- python selenium爬虫工具
今天seo的同事需要一个简单的爬虫工具, 根据一个url地址,抓取改页面的a连接,然后进入a连接里面的页面再次抓取a连接 1.需要一个全局的set([])集合来保存抓取的url地址 2.由于现在单页面 ...
随机推荐
- Windows命令行命令总结
转载地址:https://www.cnblogs.com/accumulater/p/7110811.html 1. gpedit.msc-----组策略 2. sndrec32-------录音 ...
- [LeetCode]1089. Duplicate Zeros
Given a fixed length array arr of integers, duplicate each occurrence of zero, shifting the remainin ...
- python之字典二 内置方法总结
Python字典包含了以下内置方法: clear()函数用于删除字典内所有元素 dict1 = {, 'Class': 'First'} print('the start len %d' % len( ...
- JavaMaven【一、概述&环境搭建】
课程概述 JavaMaven[一.概述&环境搭建] JavaMaven[二.目录结构&HelloMaven] JavaMaven[三.常用指令] JavaMaven[四.坐标& ...
- 7、Nginx基础Http原理
1Http协议概述 HTTP全称HyperText Transfer Protocol中文名为超文本传输协议 1.1.什么是超文本? 包含有超链接(Link)和各种多媒体元素标记的文本.这些超文本文件 ...
- 4.NIO_Channel 通道
1.通道(Channel) 由 java.nio.channels 包定义的.Channel 表示 IO 源与目标打开的连接.Channel 类似于传统的“流”.只不过 Channel 本身不能直接访 ...
- django_celery_results安装的坑
前言 在Celery4.0之前的版本中,有一个专门供Django使用的Celery版本django-celery.但现在Celery已经统一为一个版本,所以直接安装原生的Celery即可.这里就暂时 ...
- 1.opencv_画图
#导入工具包 import numpy as np import cv2 import matplotlib.pyplot as plt # 定义显示图片 def show(image): plt.i ...
- linux 远程配置docker加速器
https://www.jianshu.com/p/dca49964af04 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh ...
- top命令参数详解
简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按 ...