selenium

  • selenium:可以让浏览器完成相关自动化的操作
  • 环境安装:
    • pip install selenium
  • 编码流程:
    • 导包
    • 创建某一款浏览器对象
    • 制定相关的行为动作
from selenium import webdriver
from time import sleep
bro = webdriver.Chrome(executable_path=r'C:\Users\old-boy\Desktop\爬虫+数据\爬虫_day04\chromedriver.exe')
sleep(3)
bro.get('https://www.baidu.com/')
sleep(3)
#find系列的函数可以帮助我们定位到相关的标签
text_input = bro.find_element_by_id('kw')
#向文本框中录入一个关键字
text_input.send_keys('中国')
sleep(3)
btn = bro.find_element_by_id('su')
btn.click()
sleep(3)
#获取当前浏览器显示的页面源码数据(动态加载的数据)
page_text = bro.page_source
print(page_text)
bro.quit()
#爬取更多的电影详情数据(豆瓣)
bro = webdriver.Chrome(executable_path=r'C:\Users\old-boy\Desktop\爬虫+数据\爬虫_day04\chromedriver.exe')
bro.get('https://movie.douban.com/typerank?type_name=%E7%88%B1%E6%83%85&type=13&interval_id=100:90&action=')
sleep(3)
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(3)
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(3)
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
#获取浏览器当前的页面源码数据
page_text = bro.page_source with open('douban.html','w',encoding='utf-8') as fp:
fp.write(page_text)
sleep(3)
bro.quit()

phantomJs:浏览器(无可视化界面)

#爬取更多的电影详情数据(豆瓣)
bro = webdriver.PhantomJS(executable_path=r'C:\Users\old-boy\Desktop\爬虫+数据\tools\phantomjs-2.1.1-windows\bin\phantomjs.exe')
bro.get('https://movie.douban.com/typerank?type_name=%E7%88%B1%E6%83%85&type=13&interval_id=100:90&action=')
sleep(3)
bro.save_screenshot('./1.png')
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(3)
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(3)
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
bro.save_screenshot('./2.png')
#获取浏览器当前的页面源码数据
page_text = bro.page_source with open('douban.html','w',encoding='utf-8') as fp:
fp.write(page_text)
sleep(3)
bro.quit()

谷歌无头浏览器

from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu') bro = webdriver.Chrome(executable_path=r'C:\Users\old-boy\Desktop\爬虫+数据\爬虫_day04\chromedriver.exe',chrome_options=chrome_options)
sleep(3)
bro.get('https://www.baidu.com/')
sleep(3)
#find系列的函数可以帮助我们定位到相关的标签
text_input = bro.find_element_by_id('kw')
#向文本框中录入一个关键字
text_input.send_keys('中国')
sleep(3)
btn = bro.find_element_by_id('su')
btn.click()
sleep(3)
#获取当前浏览器显示的页面源码数据(动态加载的数据)
page_text = bro.page_source
print(page_text)
bro.quit()

登录qq空间

bro = webdriver.Chrome(executable_path=r'C:\Users\old-boy\Desktop\爬虫+数据\爬虫_day04\chromedriver.exe')
bro.get('https://qzone.qq.com/')
sleep(3)
#注意:如果想要通过find系列函数去定位某一个iframe标签下的子标签的话,一定要使用如下操作:
bro.switch_to.frame('login_frame')#参数表示的是iframe标签的id属性值 bro.find_element_by_id('switcher_plogin').click()
sleep(3) bro.find_element_by_id('u').send_keys('592888935')
bro.find_element_by_id('p').send_keys('hmw112626')
sleep(3)
bro.find_element_by_id('login_button').click()
print(bro.page_source)
sleep(3)
bro.quit()

selenium 使用的更多相关文章

  1. Python爬虫小白入门(四)PhatomJS+Selenium第一篇

    一.前言 在上一篇博文中,我们的爬虫面临着一个问题,在爬取Unsplash网站的时候,由于网站是下拉刷新,并没有分页.所以不能够通过页码获取页面的url来分别发送网络请求.我也尝试了其他方式,比如下拉 ...

  2. Selenium的PO模式(Page Object Model)[python版]

     Page Object Model 简称POM  普通的测试用例代码: .... #测试用例 def test_login_mail(self): driver = self.driver driv ...

  3. selenium元素定位篇

    Selenium webdriver是完全模拟用户在对浏览器进行操作,所有用户都是在页面进行的单击.双击.输入.滚动等操作,而webdriver也是一样,所以需要我们指定元素让webdriver进行单 ...

  4. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  5. 幼儿园的 selenium

    from selenium import webdriver     *固定开头     b=webdriver.Firefox()              *打开火狐浏览器    browser. ...

  6. 使用selenium编写脚本常见问题(一)

    前提:我用selenium IDE录制脚本,我用java写的脚本,如果大家想看的清楚明白推荐java/Junit4/Webdriver 我用的是java/TestNG/remote control 1 ...

  7. 关于selenium RC的脚本开发

    第一.需要录制脚本,找个我也不说了.就是在firefox下下载一个selenium-IDE并且安装. 第二.在工具里找到selenium-IDE点击运行. 第三.默认是红色按钮点击状态的,接下来随便你 ...

  8. 基于python的selenium自动化测试环境安装

    1. Python2安装 官方网站:https://www.python.org/downloads/ (python3或新版本已经默认集成了pip包和path,安装的时候打勾就行,可以直接跳过下面第 ...

  9. Selenium+python 配置

    1. 安装python, www.python.org. 下载最新的python,应该是32位的.注意配置环境变量. 2. 安装PIP(pip是一个以Python计算机程序语言写成的软件包管理系统). ...

  10. selenium 使用action进行鼠标,键盘操作

    <!--test.html--> <html> <head> <title>Set Timeout</title> <script&g ...

随机推荐

  1. mybatis_04 resultType和resultMap区别

    resultType 使用resultType进行结果映射时,查询的列名和映射的pojo属性名完全一致,该列才能映射成功. 如果查询的列名和映射的pojo属性名全部不一致,则不会创建pojo对象: 如 ...

  2. JavaSE-基础语法(三)-面向对象

    面向对象 8.类9.对象10.封装11.继承12.多态13.构造器14.super15.this16.接口17.抽象类18.权限修饰符19.内部类

  3. js动画 Css提供的运动 js提供的运动

    1.     动画 (1)      Css样式提供了运动 过渡的属性transition  从一种情况到另一种情况叫过渡 Transition:attr  time  linear  delay: ...

  4. linux查看用户、创建用户、设置密码、修改用户、删除用户命令

    查看用户 /etc/passwd /etc/shadow id alex ' |passwd --stdin alex # 设置密码,不需要交互 [root@localhost ~]# tail -l ...

  5. TCP 三次握手与四次断开

    三次握手建立连接 TCP连接是通过三次握手来连接的. 第一次握手 当客户端向服务器发起连接请求时,客户端会发送同步序列标号SYN到服务器,在这里我们设SYN为x,等待服务器确认,这时客户端的状态为SY ...

  6. vue从入门到进阶:计算属性computed与侦听器watch(三)

    计算属性computed 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="example" ...

  7. POJ 2484 A Funny Game(智商博弈)

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6397   Accepted: 3978 Description Alice ...

  8. Vue 组件之间传值

    一.父组件向子组件传递数据 在 Vue 中,可以使用 props 向子组件传递数据. 子组件部分: 这是 header.vue 的 HTML 部分,logo 是在 data 中定义的变量. 如果需要从 ...

  9. Spotlight on Mysql在Windows平台下的安装及使用简介

    Spotlight on Mysql在Windows平台下的安装及使用简介   by:授客 QQ:1033553122 1.   测试环境 Win7 64位 mysql-connector-odbc- ...

  10. git 入门教程之远程仓库

    远程仓库 如果说本地仓库已经足够个人进行版本控制了,那么远程仓库则使多人合作开发成为可能. 如果你只是打算自己使用git,你的工作内容不需要发布给其他人看,那就用不到远程仓库的概念. git 是分布式 ...