爬取流程

  1. 导入selenium模块中的webdriver包
  2. 实例化webdriver
  3. 准备url
  4. 打开网页
  5. 定位标签元素
  6. 执行动作
  7. 获取需要的信息
  8. 关闭浏览器

新实例

# 新版本
from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By
import time# 创建一个对象
web = Chrome()
# 打开浏览器
web.get("https://www.baidu.com")
# 获取元素
el = web.find_element(By.CSS_SELECTOR,'#s-top-left>a')  # css选择器定位
print(el)
time.sleep(1)       # 延时一秒钟
web.quit()          # 关闭浏览器

旧实例

# 旧版本
from selenium import webdriver
import time# 实例化驱动
web = webdriver.Chrome()
# 打开百度
web.get('https://www.baidu.com/')
title = web.find_element_by_xpath('//*[@id="s-top-left"]/a[1]')
print(title.text)   # 输出
time.sleep(1)       # 延时一秒
web.close()   # 关闭浏览器

常用的元素定位方法

新方法

web.find_element(By.ID, 's-top-left')  # 元素id定位
web.find_element(By.CLASS_NAME,'mnav')    # 类选择器定位
web.find_element(By.TAG_NAME, 'a')  # 元素标签定位
web.find_element(By.NAME,'description')   # name属性选择器
web.find_element(By.LINK_TEXT,'新闻')   # 通过文字连接选择
web.find_element(By.PARTIAL_LINK_TEXT, '新')  # 通过部分文字连接选择
web.find_elements(By.XPATH, '//*[@id="s-top-left"]/a')    # xpath选择器
web.find_element(By.CSS_SELECTOR,'#s-top-left>a')  # css选择器定位

旧方法

find_element_by_id(id的值)    # 通过元素的id来定位
find_element_class_name(class的值)    # 通过class属性来定位元素
find_element_by_tag_name(标签的名字)    # 通过标签的名字来定位
find_element_by_css_selector(css选择器)    # 通过css样式定位元素
find_element_by_name(节点中的name的值)    # 通过标签的name来定位
find_element_by_link_text(文字链接)    # 通过文字链接来定位元素
find_element_by_partial_link_text()    # 通过部分文字链接来定位素
driver.find_element_by_xpath(x_path)    # 通过xpth()来定位

执行动作

# 定位元素
input = el = web.find_elements(By.CSS_SELECTOR, '#s-top-left>input')[0]
# 给元素发送消息
input.send_keys('Python')
# 回车操作
input.send_keys(Keys.ENTER)
# 点击事件
input.click()
# 清除消息
input.clear()

执行JavaScript代码

# 可以直接执行js代码
driver.execute_script('alert("直接执行js")')

获取元素文本值和属性

# 获取元素
name = browser.find_element_by_id('s')
# 获取元素的文本值
print(name.text)
# 获取元素的属性
print(name.get_attribute('href'))

打卡第64天,对python大数据感兴趣的朋友欢迎一起讨论、交流,请多指教!

python爬虫 selenium模块的学习相关推荐

  1. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  2. 利用python的selenium模块向Plant-mPLoc提交数据

    利用python的selenium模块向Plant-mPLoc提交数据 流程一般步骤 1.对数据的预处理 2. 环境的配置 3.代码分析及流程思想 回顾和展望 流程一般步骤   首先我们对得到的序列预 ...

  3. [Python爬虫] Selenium获取百度百科旅游景点的InfoBox消息盒

    前面我讲述过如何通过BeautifulSoup获取维基百科的消息盒,同样可以通过Spider获取网站内容,最近学习了Selenium+Phantomjs后,准备利用它们获取百度百科的旅游景点消息盒(I ...

  4. [Python爬虫] Selenium+Phantomjs动态获取CSDN下载资源信息和评论

    前面几篇文章介绍了Selenium.PhantomJS的基础知识及安装过程,这篇文章是一篇应用.通过Selenium调用Phantomjs获取CSDN下载资源的信息,最重要的是动态获取资源的评论,它是 ...

  5. [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍

    前三篇文章介绍了安装过程和通过Selenium实现访问Firefox浏览器并自动搜索"Eastmount"关键字及截图的功能.而这篇文章主要简单介绍如何实现自动登录163邮箱,同时 ...

  6. 数据采集与清洗基础习题(二)Python爬虫常用模块,头歌参考答案

    数据采集习题参考答案,会持续更新,点个关注防丢失.为了方便查找,已按照头歌重新排版,朋友们按照头歌所属门类查找实训哦,该篇为Python爬虫常用模块. 创作不易,一键三连给博主一个支持呗. 文章目录 ...

  7. Python爬虫 Selenium实现自动登录163邮箱和Locating Elements介绍

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  8. Python 爬虫 Selenium 基本使用

    Python 爬虫 Selenium 基本使用 1. 基础知识 1.1 下载浏览器驱动 1.2 帮助文档 2. 浏览器操作 2.1 浏览器导航 2.2 窗口和选项卡 2.3 Frames and If ...

  9. [Python爬虫] Selenium实现自己主动登录163邮箱和Locating Elements介绍

            前三篇文章介绍了安装过程和通过Selenium实现訪问Firefox浏览器并自己主动搜索"Eastmount"keyword及截图的功能.而这篇文章主要简介怎样实现 ...

最新文章

  1. 每日一皮:学会说话很重要...
  2. linux日志中有空格,linux中统计排序的内容含有空白行的解决办法
  3. 由浅入深:自己动手开发模板引擎——解释型模板引擎
  4. Linux 环境安装 Node、nginx、docker、vsftpd、gitlab
  5. word置顶_小鱼便签怎么设置置顶
  6. 需求蔓延,常见但不正常,教你如何破
  7. ACR2010_常规医疗环境下TNF拮抗剂对RA骨侵蚀的修复作用
  8. 高性能负载均衡是如何架构的?
  9. 2019 CCF 推荐 会议 列表
  10. 大数据应用场景”之隔壁老王(连载二)
  11. layui.layim
  12. C#中(int)、Conver.Toint32()、int.Parse()三种类型转换方式的区别与联系--C#基础知识
  13. Unity实现类似于LookAt 的功能
  14. DynamoDB系列之--本地二级索引
  15. C++PTA习题总结(三)
  16. 痞子衡嵌入式:可通过USB Device Path来唯一指定i.MXRT设备进行ROM/Flashloader通信
  17. 继承/理解 super和this关键字
  18. 管理后台项目-04-SPU列表-增删改SPU-获取SKU【续】
  19. 什么是双线机房??双线是怎么实现的!!!
  20. Lombok,@Data - Generating equals/hashCode implementation but without a call to superclass

热门文章

  1. JS兼容问题的函数封装文档
  2. 2个网卡配置相同ip 华为交换机_【跟着做】华为网络设备配置
  3. python寻路_【Python】 Numpy极简寻路
  4. epoll nio区别_高性能网络服务器编程:为什么linux下epoll是最好,Netty要比NIO.2好?...
  5. php 类加载其它类,PHP 命名空间 namespace / 类别名 use / 框架自动载入 机理的
  6. python netsnmp_在Ubuntu18.04中关于Python使用netsnmp进行snmp编程
  7. python爬虫程序框架的理论是什么_Python网络爬虫(scrapy框架简介和基础应用)
  8. mysql事务会不会上锁_MySQL事务以及加锁机制
  9. 江苏大学计算机学院宋美如,姜震-江苏大学计算机科学与通信工程学院
  10. 计算机辅助设计试题 李明,计算机辅助设计B李明及答案.doc