安装

pip install selenium

开始

# coding=utf-8
from selenium import webdriver # 引用selenium库
import time # 实例化一个浏览器
driver = webdriver.Chrome()
# 请求网页地址
driver.get("http://www.baidu.com")
# 元素定位方法
driver.find_element_by_id("kw").send_keys("python")
driver.find_element_by_id("su").click() # 退出浏览器
time.sleep(3)
driver.quit()

报错

raceback (most recent call last):
File "D:/python_work/18-20爬虫代码V3.1/爬虫代码V3.1/day06/code/01_try_selenium.py", line 6, in <module>
driver = webdriver.Chrome()
File "D:\Programs\Python\Python35\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 73, in __init__
self.service.start()
File "D:\Programs\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 83, in start
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

原因:没有安装chromedriver

chromedriver下载地址:https://chromedriver.storage.googleapis.com/index.html

解压缩

unzip chromedriver_linux64.zip

把文件夹移动到/usr/bin目录下

sudo mv chromedriver /usr/bin/

测试是否成功

继续运行代码,成功

selenium用法

# coding=utf-8
from selenium import webdriver # 引用selenium库
import time # 实例化一个浏览器
driver = webdriver.Chrome()
# 请求网页地址
driver.get("http://www.baidu.com")
# 最大化窗口
# driver.maximize_window()
# 自定义窗口大小
driver.set_window_size("","")
# 保存图片
driver.save_screenshot('./baidu.png') # 元素定位方法
driver.find_element_by_id("kw").send_keys("python")
driver.find_element_by_id("su").click() # 请求
# 获取cookies
cookies = driver.get_cookies()
cookies = {i["name"]:i["value"] for i in cookies}
print(cookies)
# 获取网页elenments 即 html字符串
html = driver.page_source
print(html)
# 获取当前请求的url
current_url = driver.current_url
print(current_url) # 退出当前页面
driver.close()
# 退出浏览器
driver.quit()

find_element

# coding=utf-8
from selenium import webdriver
import time driver = webdriver.Chrome()
driver.get("https://www.baidu.com/s?ie=UTF-8&wd=python") # find_element和find_elements区别
# find_element返回一个对象,如果没有会报错
# find_elements返回一个对象集组成的列表,如果没有返回一个空列表 # 获取内容块列表
ret = driver.find_elements_by_xpath("//div[@id='content_left']//div[contains(@class,'c-container')]")
# by_xpath中获取属性需要使用get_attribute()
for i in ret:
# print(i.get_attribute('srcid'))
pass
# by_xpath中获取文本钥匙用text 注:不是text()
# 获取"下一页>"文本所在的链接
print(driver.find_elements_by_link_text("下一页>")[0].get_attribute("href"))
# 获取含有"下一页"文字的文本所在的链接
print(driver.find_element_by_partial_link_text("下一页").get_attribute("href"))
# 根据表签名获取内容
ret1 = driver.find_elements_by_tag_name("h3")
for i in ret1:
# print(i.text)
pass
# 根据class获取内容
ret2 = driver.find_elements_by_class_name("c-container")
print(ret2)
# 获取css选择器
print(driver.find_element_by_class_name("table,img")) driver.quit()

frame操作

# coding=utf-8
from selenium import webdriver
import time driver = webdriver.Chrome()
driver.get("https://mail.qq.com") # 切换到iframe
driver.switch_to.frame("login_frame")
# 如果没有切换到iframe的话 会找不到元素而报错
driver.find_element_by_id("u").send_keys("") time.sleep(3)
driver.quit()

爬虫-selenium的使用的更多相关文章

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

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

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

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

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

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

  4. [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)

    转载自:http://blog.csdn.net/eastmount/article/details/51231852 一. 文章介绍 源码下载地址:http://download.csdn.net/ ...

  5. python爬虫---selenium库的用法

    python爬虫---selenium库的用法 selenium是一个自动化测试工具,支持Firefox,Chrome等众多浏览器 在爬虫中的应用主要是用来解决JS渲染的问题. 1.使用前需要安装这个 ...

  6. [python爬虫] Selenium常见元素定位方法和操作的学习介绍

    这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~同时CSDN总是屏蔽这篇文章,再加上最近 ...

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

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

  8. 笔记-爬虫-selenium常用方法

    笔记-爬虫-selenium常用方法 1.      查找元素 常用的查找方法 find_element_by_name find_element_by_xpath find_element_by_l ...

  9. Python爬虫-selenium的使用(2)

    使用selenium打开chrome浏览器百度进行搜索 12345678910111213141516171819202122232425 from selenium import webdriver ...

  10. [Python爬虫] Selenium自动访问Firefox和Chrome并实现搜索截图

    前两篇文章介绍了安装,此篇文章算是一个简单的进阶应用吧!它是在Windows下通过Selenium+Python实现自动访问Firefox和Chrome并实现搜索截图的功能.        [Pyth ...

随机推荐

  1. 第01组 Beta冲刺(4/5)

    队名:007 组长博客: https://www.cnblogs.com/Linrrui/p/12019233.html 作业博客: https://edu.cnblogs.com/campus/fz ...

  2. mysql数据库备份工具xtrabackup

    1.下载二进制安装包 其他高版本测试缺少依赖 2.xtrabackup参数说明 简介:  Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工 ...

  3. 应用Redis分布式锁解决重复通知的问题

    研究背景: 这几天被支付宝充值后通知所产生的重复处理问题搞得焦头烂额, 一周连续发生两次重复充钱的杯具, 发事故邮件发到想吐..为了挽回程序员的尊严, 我用了Redis的锁机制. 事故场景: 支付宝下 ...

  4. Deep Learning专栏--强化学习之MDP、Bellman方程(1)

    本文主要介绍强化学习的一些基本概念:包括MDP.Bellman方程等, 并且讲述了如何从 MDP 过渡到 Reinforcement Learning. 1. 强化学习基本概念 这里还是放上David ...

  5. HTML--元素居中各种处理方法2

    紧接上一篇. 如果要居中的是一个块元素呢. 1)如果你知道这个块元素的高度: <main> <div> I'm a block-level element with a fix ...

  6. NFS客户端挂载失败之authenticated unmount request from

    1.故障现象 客户端挂载时夯住,无反应,无报错,如下图: 2.故障前对挂载目录的操作 发现故障前挂载目录被误删除,后通过备份分为恢复 3.故障排查步骤 .检查客户端及服务端防火墙规则 .检查selin ...

  7. kvm虚拟机vnc配置

    通过vnc方式访问虚拟主机上的KVM虚拟机 通过虚拟主机的IP地址与端口进行访问 1.  修改qemu.conf # vi /etc/libvirt/qemu.conf vnc_listen = &q ...

  8. 【JVM】jstat命令详解---JVM的统计监测工具

    java进程的PID获取命令: https://www.cnblogs.com/sxdcgaq8080/p/10734752.html ================================ ...

  9. TransactionScope 使用的注意事项

    前两天为了给代码做一些事务封装,写了个小Demo,用TransactionScope代码块实现. 第一条更新成功后第二条刻意抛出异常,结果发现第一条总执行成功,这不符合预期,于是开始一步步跟踪调试. ...

  10. [转]ASP.NET Core Web API 最佳实践指南

    原文地址: ASP.NET-Core-Web-API-Best-Practices-Guide 转自 介绍# 当我们编写一个项目的时候,我们的主要目标是使它能如期运行,并尽可能地满足所有用户需求. 但 ...