selenium 初体验

selenium自动获取百度搜索结果

源码:

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.support.wait import WebDriverWait

browser = webdriver.Chrome()

try:

browser.get('https://www.baidu.com')

input = browser.find_element_by_id('kw')

input.send_keys('Python爬虫')

input.send_keys(Keys.ENTER)

wait = WebDriverWait(browser, 10)

wait.until(EC.presence_of_all_elements_located((By.ID, 'content_left')))

print(browser.current_url)

print(browser.get_cookies())

print(browser.page_source)

finally:

browser.close()

自动调用浏览器

与此同时,终端会将获取到的结果都打印出来

声明浏览器

selenium支持多个浏览器,声明浏览器的方式如下:

源码:

from selenium import webdriver

browser = webdriver.Chrome() # 声明 chrome

browser = webdriver.Firefox() # 声明 Firefox

访问页面

源码:

from selenium import webdriver

browser = webdriver.Chrome() # 声明浏览器

browser.get('https://www.baidu.com') # 访问网页

print(browser.page_source) # 将源码打印到终端

browser.close() # 关闭浏览器

运行脚本,会看到程序自动打开浏览器访问百度,并将源码输出到了终端

查找节点

获取知乎的搜索框节点

搜索框

源码

源码:

from selenium import webdriver

browser = webdriver.Chrome() # 声明浏览器

browser.get('https://www.zhihu.com') # 访问网页

search_input = browser.find_element_by_id('Popover1-toggle') # 查找节点

print(search_input)

browser.close() # 关闭浏览器

结果

☁ crawler python3 test_selenium.py

通过pycharm,进入browser.find_element_by_id源码,可看到还有多种方式能获取节点

节点查找方法

多节点查找

多节点

源码:

from selenium import webdriver

browser = webdriver.Chrome() # 声明浏览器

browser.get('http://36kr.com/') # 访问网页

lis = browser.find_elements_by_class_name('radius') # 根据类名查找节点

print(lis)

browser.close() # 关闭浏览器

执行结果

节点交互

需求:打开百度首页,在搜索框输入“三体“,然后清空搜索框,再输入“球状闪电”,最后点击搜索按钮

相当于模拟用户的真实操作

百度搜索框

源码:

from selenium import webdriver

import time

browser = webdriver.Chrome() # 声明浏览器

browser.get('https://www.baidu.com') # 访问网页

search_input = browser.find_element_by_id('kw') # 获取搜索框

search_input.send_keys('三体') # 将文字填充到搜索框

time.sleep(2)

search_input.clear() # 清空搜索框

search_input.send_keys('球状闪电')

submit = browser.find_element_by_id('su') # 获取提交按钮

submit.click() # 点击提交按钮

time.sleep(2)

browser.close() # 关闭浏览器

节点交互

更多的节点交互请查看官方文档

python3 selenium教程_2018年python3与selenium教程第1节相关推荐

  1. python3打包exe运行没反应_python selenium运行,打包exe常见问题解决方法

    selenium是一款优秀的自动化测试工具,支持的语言也非常广泛,其中以python语言最为高效简洁,本文以Python3.5.2为例. 首先需要安装selenium插件,命令行下pip instal ...

  2. win10系统,python3.8环境,chrome浏览器,selenium框架,实现腾讯视频自动登录

    文章目录 环境 代码演示 总结 环境 win10系统,python3.8环境,chrome浏览器,selenium框架,实现腾讯视频自动登录 代码演示 from selenium import web ...

  3. (下)python3 selenium3 从框架实现代码学习selenium让你事半功倍

    上一篇博文简要 在上一篇博文中已得知:使用 execute 向远程服务器发送请求会通过 webdriver 与浏览器交互,且发送已定义的命令常量可获得一些相关信息. 其中 execute 方法实现已经 ...

  4. (上)python3 selenium3 从框架实现代码学习selenium让你事半功倍

    本文感谢以下文档或说明提供的参考. Selenium-Python中文文档 Selenium Documentation Webdriver 参考 如有错误欢迎在评论区指出,作者将即时更改. 环境说明 ...

  5. python3爬虫入门教程-总算懂得python3.4爬虫入门教程

    Python是一款功能强大的脚本语言,具有丰富和强大的库,重要的是,它还具有很强的可读性,易用易学,非常适合编程初学者入门.以下是小编为你整理的python3.4爬虫入门教程 环境配置:下载Pytho ...

  6. Python使用Selenium WebDriver的入门介绍及安装教程

    Selenium WebDriver 入门 一.什么是Selenium WebDriver 二.安装Selenium WebDriver 2.1 安装selenium类库 2.2 安装浏览器驱动 2. ...

  7. python3.8.1安装教程-Linux安装Python3.8.1的教程详解

    本例以Linux上安装Pyhton3.8版本为例进行说明 1.依赖包安装 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-dev ...

  8. python详细安装教程linux-Linux下python3.7.0安装教程

    记录了Linux 安装python3.7.0的详细过程,供大家参考,具体内容如下 我这里使用的时centos7-mini,centos系统本身默认安装有python2.x,版本x根据不同版本系统有所不 ...

  9. python3.8提示pip_Linux下升级安装python3.8并配置pip及yum的教程

    服务器的CentOS 7中自带的python版本是python-2.7.5,需要再安装一个python-3.8.1 一.查看版本 安装前查看一下是否已经安装过python,我这里自带了python2. ...

最新文章

  1. 中国智能语音行业研究
  2. 北京高性能计算机应用中心,中国气象局高性能计算机系统资源使用报告-北京高性能计算机应用中心.PDF...
  3. sys.stdout sys.stderr的用法
  4. windows优化_windows系统优化教程——C盘清理及优化
  5. Php面试题之背人过桥,梦见背人过桥好不好?
  6. E-triples II_2019牛客暑期多校训练营(第四场)
  7. 飞鸽传书程序IT基础架构和应用的管理
  8. 了解自己计算机硬件设备信息
  9. 【Elasticsearch】es 新的 数据类型 search_as_you_type
  10. git reset简介
  11. 开网店,网店系统的编程语言分析
  12. Werkflow java_几大工作流引擎对比
  13. 荧光标记毛细管电泳应用---InDel标记筛选与验证
  14. cad零点坐标标注lisp_CAD_XY坐标标注AUTO_LISP程序
  15. javaScript -- touch事件详解(touchstart、touchmove和touchend)
  16. MySQL 数据库之实现热备份
  17. 微信支付-APP支付
  18. Django模型中的关系:一对一、一对多与多对多
  19. 【比特鹏哥C语言_1.初识C语言】
  20. 2020年8月试题分析-计算机网络原理

热门文章

  1. arm linux内核编译
  2. zabbix解决监控图表中文乱码问题
  3. 【STM32H7教程】第85章 STM32H7的SPI 总线应用之SPI Flash的STM32CubeProg下载算法制作
  4. html输出转成word(转)
  5. 【九章算法】-动态规划
  6. Excel空白行如何批量填充复制上一行的内容?
  7. 考虑风电经济调度的储能运行优化
  8. hscode 查询,hscode 查询api 支持
  9. NetBIOS网络基本输入/输出系统协议分析
  10. xbox虚拟服务器,《微软模拟飞行》体积减半,主机版也快到来了