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.由于现在单页面 ...
随机推荐
- 在Mysql中使用索引
MySQL查询的优化是个老生常谈的问题,方法更是多种多样,其中最直接的就是创建索引. 这里通过一个简单的demo来实际用一下索引,看看索引在百万级别查询中速率的提升效果如何 所需数据可以从我前面的一篇 ...
- Odoo的菜单项
用户界面的入口是菜单项,菜单项形成一个层级结构,最顶级项为应用,其下一级为每个应用的主菜单.还可以添加更深的子菜单.可操作菜单与窗口操作关联,它告诉客户端在点击了菜单项后应执行什么操作. 菜单项存储在 ...
- tftp client命令示例
tftp 192.168.1.1 -c put myfile theirfile tftp 192.168.1.1 -m binary -c put myfile theirfile The tftp ...
- C语言特殊函数的应用
1. va_list相关函数的学习: va_list是一种变参量的指针类型定义. va_list使用方法如下: 1)首先在函数中定义一个具有va_list型的变量,这个变量是指向参数的指针. 2)首先 ...
- Redis日志级别
Redis默认的设置为verbose,开发测试阶段可以用debug,生产模式一般选用notice 1. debug:会打印出很多信息,适用于开发和测试阶段 2. verbose(冗长的):包含很多不太 ...
- 安装docker fastdfs
# step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2# Step 2: 添加软件 ...
- HH的项链 HYSBZ - 1878 (莫队/ 树状数组)
HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一 段贝壳,思考它们所表达的含义.HH不断地收集新的贝壳,因此他的项链变得越来越长.有一天,他突然 ...
- 【PKUSC2018】最大前缀和
上午的国庆大阅兵有意思 Description https://loj.ac/problem/6433 Solution 看数据范围认解法 首先在每种情况出现概率相同的情况下, \(期望 \times ...
- windows安装PostgreSQL
犹豫了一小下,初学不在linux下安装sql,虽然说书上有,还是想记录一下,以后好找 入门的书籍是SQL基础教程第二版,图书馆搜刮来的,毕竟要还 下载页面 http://www.enterprised ...
- flutter 记录正则匹配
手机号正则匹配: // 正则匹配 static bool isChinaPhoneLegal(String str) { return new RegExp('^((13[0-9])|(15[^4]) ...