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. 正则表达式之 \b

    引用网上一段话: \b 是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,metacharacter),代表着单词的开头或结尾,也就是单词的分界处.虽然通常英文的单词是由空格,标点符号或者换行来 ...

  2. Mybatis框架可视化(1)

    Mybatis整体架构视图: 接 口 层 SqlSession (定义了Mybatis暴露给应用程序调用的API) 核 心 处 理 层 配置解析 (加载核心配置.映射配置. mapper接口注解信息, ...

  3. C#设计模式之三抽象工厂模式(AbstractFactory)【创建型】

    一.引言 写了3篇有关设计模式的文章了,大家有了些反馈,说能从中学到一些东西,我感到很欣慰,那就继续努力.今天我要写第四个模式了,该模式叫抽象工厂.上一篇文章我们讲了[工厂方法]模式,它是为了解决[简 ...

  4. canvas-7global.html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. VMWAR-workstatuon

    https://blog.csdn.net/felix__h/article/details/82853501 链接中的秘钥可用~感谢原文作者 下载安装: 官网下载地址:https://www.vmw ...

  6. 将HTML页面自动保存为PDF文件并上传的两种方式(一)-前端(react)方式

    一.业务场景 公司的样本检测报告以React页面的形式生成,已调整为A4大小的样式并已实现分页,业务上需要将这个网页生成PDF文件,并上传到服务器,后续会将这个文件发送给客户(这里不考虑). 二.原来 ...

  7. zTree 节点文字过多处理方法

    zTree setting.view.addDiyDom 方法可以实现自定义控件,指定节点显示内容.因此需要自己实现addDiyDom方法. 如果树节点不显示checkbox ,处理方法为: func ...

  8. Android为TV端助力 handler ,message消息发送方式

    1.Message msg =  Message.obtain(mainHandler) msg.obj=obj;//添加你需要附加上去的内容 msg.what = what;//what消息处理的类 ...

  9. 转载:如何在Ubuntu 18.04上使用UFW设置防火墙

    https://blog.csdn.net/u013068789/article/details/82051943 介绍 UFW或Uncomplicated Firewall是iptables一个接口 ...

  10. 生成器(generator,yield),next,send

    #生成器 def generator(): for i in range(200): yield '哇哈哈%s' %i g = generator() #调用生成数函数,接受作用 ret = g.__ ...