selenium的基本用法
selenium需要配合一个driver 我使用的是chrome的driver 注意一定要下载对应浏览器版本的driver 否则会报错的
http://chromedriver.storage.googleapis.com/index.html
例如我的chrome的版本是67.xxx我选择的是2.38 最开始下载的2.39和我的版本不匹配,如果你也是这样,请多换几个版本
1.导入包
from selenium import webdriver
from scrapy.selector import Selector #这是调用选择器
建立一个brower path后面跟你的driver的地址,可以是绝对路径,要英文路径,我没试过中文的,经验告诉我,用英文
browser = webdriver.Chrome(executable_path='./chromedriver')
2.打开一个网页
browser.get("https://www.zhihu.com/signin")
print(browser.page_source) #获取页面的html文本配合selector使用
3模拟登录知乎
from selenium import webdriver
from scrapy.selector import Selector
import time
browser = webdriver.Chrome(executable_path='./chromedriver') browser.get("https://www.zhihu.com/signin") browser.find_element_by_css_selector(".SignFlow-accountInput.Input-wrapper input[name='username']").send_keys("你的用户名")
browser.find_element_by_css_selector(".Input-wrapper input[name='password']").send_keys('你的密码')
time.sleep(5) #也许会出现验证码,得手动打码,或者你调用打码的api这边自己调 browser.find_element_by_css_selector(".SignFlow-submitButton").click() #模拟点击登录按钮
4模拟登录微博
from selenium import webdriver
from scrapy.selector import Selector
import time
browser = webdriver.Chrome(executable_path='./chromedriver')
browser.get("https://weibo.com/") time.sleep(5)
browser.find_element_by_css_selector("#loginname").send_keys("你的用户名")
browser.find_element_by_css_selector(".info_list.password input[name='password']").send_keys('你的密码')
browser.find_element_by_css_selector(".W_btn_a.btn_32px[node-type='submitBtn']").click() #模拟点击登录
5修改selenium的默认配置不加载图片
from selenium import webdriver
chrome_opt = webdriver.ChromeOptions()
prefs={"profile.managed_default_content_settings.images":2}
chrome_opt.add_experimental_option("prefs",prefs)
browser = webdriver.Chrome(executable_path='./chromedriver',chrome_options=chrome_opt)
browser.get("https://www.taobao.com")
6模拟下拉页面加载内容
from selenium import webdriver
browser = webdriver.Chrome(executable_path='./chromedriver')
browser.get("https://www.oschina.net/blog")
for i in range(3):
browser.execute_script("window.scrollTo(0,document.body.scrollHeight);var lenOfPage=document.body.srollHeight; return lenOfPage;")
time.sleep(3)
selenium的基本用法的更多相关文章
- python爬虫---selenium库的用法
python爬虫---selenium库的用法 selenium是一个自动化测试工具,支持Firefox,Chrome等众多浏览器 在爬虫中的应用主要是用来解决JS渲染的问题. 1.使用前需要安装这个 ...
- Python之Selenium的爬虫用法
Selenium 2,又名 WebDriver,它的主要新功能是集成了 Selenium 1.0 以及 WebDriver(WebDriver 曾经是 Selenium 的竞争对手).也就是说 Sel ...
- 模拟登陆百度以及Selenium 的基本用法
模拟登陆百度,需要依赖于selenium 模块,调用浏览器,执行python命令 先来说一下这个selenium模块啦...... 本文参考内容来自 Selenium官网 SeleniumPython ...
- Selenium WebDriver高级用法
Selenium GitHub地址 选择合适的WebDrvier WebDriver是一个接口,它有几种实现,分别是HtmlUnitDrvier.FirefoxDriver.InternetExplo ...
- PYTHON 爬虫笔记七:Selenium库基础用法
知识点一:Selenium库详解及其基本使用 什么是Selenium selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium ...
- selenium模块基础用法详解
目录 selenium模块 官方文档 介绍 安装 有界面浏览器 无界浏览器 selenium+谷歌浏览器headless模式 基本使用 选择器 基本用法 xpath 获取标签属性 等待元素被加载 隐式 ...
- <自动化测试>之<Selenium API 的用法1>
今天,简单,举例说一下在用python+selenium中元素定位的主要方法,第一部分是单个元素的操作,第二部分是一类元素的操作,实际操作中注意区分 #!/usr/bin/env python # - ...
- selenium By.xpath 用法
搞了一下午... 1. Xpath往往以“//”开头,属性都是采用@表示,例如//div[@id='_navigation']/div 2. Firefox有个插件叫做xpather, ...
- Selenium常用API用法示例集----下拉框、文本域及富文本框、弹窗、JS、frame、文件上传和下载
元素识别方法.一组元素定位.鼠标操作.多窗口处理.下拉框.文本域及富文本框.弹窗.JS.frame.文件上传和下载 元素识别方法: driver.find_element_by_id() driver ...
随机推荐
- murri
github: https://github.com/haltu/muuri 官网:https://haltu.github.io/muuri/ 安装 npm install murri —sav ...
- [android]__如何在studio中导入,使用开源的UI组件
前言 在编程开发中,我们对第三方的优质开源组件是十分依赖的,在很多时候,我们都会使用到他们.使用第三方开源组件能够给我们的编程开发带来很大的便利.今天以这篇文章记录关于在android项目中引用第三方 ...
- Python快速学习04:循环 & 函数
前言 系列文章:[传送门] 也就今天认识了 LC ,很开心. 本文目录 循环 for while 中断 函数 函数定义 函数调用 for循环 Python 中的for 循环象shell 脚本里的for ...
- [java] 为什么重写equals()必须要重写hashCode()
本文版权归 远方的风lyh和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 在Java API文档中关于hashCode方法有以下几点规定(原文来自java深入解析一书) 1 在j ...
- Cookie登录保存
Login.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Log ...
- 【原创】驱动加载之OpenService
SC_HANDLE WINAPI OpenService( _In_ SC_HANDLE hSCManager, _In_ LPCTSTR lpServiceName, _In_ DWORD dwDe ...
- mysql累积聚合
累积聚合为聚合从序列内第一个元素到当前元素的数据,如为每个员工返回每月开始到现在累积的订单数量和平均订单数量 行号问题有两个解决方案,分别是为使用子查询和使用连接.子查询的方法通常比较直观,可读性强. ...
- Android AIDL 实例
为使应用程序之间能够彼此通信,Android提供了IPC (Inter Process Communication,进程间通信)的一种独特实现: AIDL (Android Interface Def ...
- springMVC中的注解@RequestParam与@PathVariable的区别
1.@PathVariable @PathVariable绑定URI模板变量值 @PathVariable是用来获得请求url中的动态参数的 @PathVariable用于将请求URL中的模板变量映射 ...
- 南大算法设计与分析课程复习笔记(4)L4 - QuickSort
一.快速排序 算法导论上关于快速排序有两种写法 第一种,从头到尾遍历,不断将小于基准元素的项移到前面.代码很简介,只需要维护一个交换位置,表示小于基准元素的末尾位置加一 我们看算法导论上的一个例子: ...