爬虫-使用模拟浏览器操作(截取网页)

最近遇到一个问题就是,如何模拟真实浏览器行为然后截取显示的网页。

方案

  1. 模拟登陆网站或者直接使用cookie登陆。
  2. 对指定页面按钮进行点击刷新页面,截取网页。

我们使用selenium库来操作浏览器驱动,即执行浏览器相应的驱动命令,实现相应的浏览器操作。


准备工作

  • selenium库
    浏览器自动化测试框架,其作用是通过操作浏览器驱动来控制浏览器行为,达到模拟真实用户操作浏览器的效果。原理为自动化测试python脚本-->浏览器driver -->浏览器。官网 python中文文档 python官方文档
    python安装
pip install -U selenium 安装并更新
  • 浏览器驱动
    selenium需要下载对应的浏览器驱动才能操作计算机中已经安装好的浏览器。下载对应驱动版本exe文件后,将其放入python安装路径的scripts目录即可,注意驱动版本要和浏览器版本匹配。
    chrome驱动: 下载地址 备用地址
  • Phantomjs浏览器
    它是基于webkit浏览器的无头浏览器,下载安装完成并设置系统环境变量。selenium支持直接调用。官方下载地址。截图的图片为长图(网页全部展开)。

使用方法

以chrome浏览器为例

  • 简单用例
from selenium import webdriver  #导入驱动模块

driver =webdriver.Chrome()       #创建相应浏览器驱动对象
driver.get("http://www.baidu.com")  #使用驱动对象打开网站
  • 操作cookie
cookie = {‘name': foo', 'value': 'bar’}
driver.add_cookie(cookie)

driver.get_cookies()
  • 获取元素
    已知元素定义
    <input type="text" name="passwd" id="passwd-id" />
    可以通过以下方法获取元素
element = driver.find_element_by_id("passwd-id")
element = driver.find_element_by_name("passwd")
element.find_elements_by_tag_name("option")
element = driver.find_element_by_xpath("//input[@id='passwd-id']")
  • 输入内容
element.send_keys("some text")
element.send_keys(" and some", Keys.ARROW_DOWN) 使用Keys类来模拟输入方向键
element.clear() 清除文本内容

element.click() 点击
  • 等待页面加载完成
  • 处理对话框
 alert = drvier.switch_to_alert()
  • 关闭浏览器
driver.quit() #关闭这个浏览器
driver.close() #关闭当前界面
  • 截取网页图片
    driver.save_screenshot(‘1.png‘)

实际操作用例

参考文章

Python爬虫学习笔记13】使用Selenium模拟浏览器行为

selenium 入门笔记

使用python模拟浏览器实现登陆

Selenium-Python中文文档

python爬虫:使用Selenium模拟浏览器行为

原文地址:https://www.cnblogs.com/MR119blog/p/11811058.html

时间: 2024-11-05 20:05:58

爬虫-使用模拟浏览器操作(截取网页)的相关文章

第三百三十三节,web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies

第三百三十三节,web爬虫讲解2-Scrapy框架爬虫-Scrapy模拟浏览器登录 模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于start_urls,start_requests()返回的请求会替代start_urls里的请求 Request()get请求,可以设置,url.cookie.回调函数 FormRequest.from_response()表单post提交,第一个必须参数,上一次响应cookie的response对象,其

web爬虫讲解—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies

模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于start_urls,start_requests()返回的请求会替代start_urls里的请求 Request()get请求,可以设置,url.cookie.回调函数 FormRequest.from_response()表单post提交,第一个必须参数,上一次响应cookie的response对象,其他参数,cookie.url.表单内容等 yield Request()可以将一个新

如何利用Win10Edge浏览器来截取网页长图?

有时我们在工作演示时会需要截取网页上的图片,不过简单的截图可以,但如果需要截取超过屏幕大小的整个网页,你是不是就有些束手无策了.虽然拼接图片也是种方法,但毕竟还是不方便,下面好系统重装助手就教你在Win10系统中如何截取网页长图. Win10系统截取网页长图的方法 工欲善其事必先利其器,有了工具,我们就可以顺利完成网页长图的截取.这个工具就是Win10系统自带的Edge浏览器.1.打开Edge浏览器,在右上方找到并点击"添加笔记"功能键.2.在笔记功能区内,找到并点击"剪辑&

使用selenium 模拟人操作请求网页

首先要 pip install selenium  安装插件 然后要下载驱动驱动根据你的浏览器 Chrome  selenium 驱动下载地址 http://chromedriver.storage.googleapis.com/index.html 火狐 selenium 驱动下载地址 https://github.com/mozilla/geckodriver/releases 我们拿 Chrome 演示 首先查看自己的 Chrome 版本 找到浏览器右上角的这个进行点击 在找到帮助进行点击

完全机器模拟浏览器操作自动刷网课!不怕被封!!-----python基于selenium实现超星学习通刷视频网课

原谅我这个标题党,对叭起 最近没事觉得网课恶心人,“你们学计算机的,随便写个程序玩玩,很容易哒”------语出高数老师,于是我就“随便”写了个刷网课的程序,没什么nb算法,请各路大神指教 原谅我的个别函数名和变量名用了拼音,别喷我low呜呜呜(其实就是懒,打拼音顺手了,这是个坏习惯,大家别学我) 以上的都是废话 需要注意的是要安装一个浏览器驱动,去网上下载就好了,把地址添加在第四行那里,我代码里面的是谷歌浏览器,如果想要用其他的浏览器代码换成相应的就行 然后要自己在终端输入自己的账号.密码,还

python实现模拟浏览器訪问网页

原文:http://blog.csdn.net/boksic/article/details/16870453 import urllib2 import timeit import thread import time i = 0 x = 0 mylock = thread.allocate_lock() def test(no,r): global i url = 'http://blog.csdn.net/' for j in range(1,r): req=urllib2.Request

python下selenium模拟浏览器基础操作

1.安装及下载 selenium安装: pip install selenium  即可自动安装selenium geckodriver下载:https://github.com/mozilla/geckodriver/releases Chromedriver下载:http://npm.taobao.org/mirrors/chromedriver/ 2.保存路径 将下载好的geckodriver以及Chromedriver解压到桌面,打开我的电脑,找到Python文件夹中anancode文件

Python模拟浏览器实现用户响应

最近工作中遇到一个问题,在集群上运行的任务有时候无法正常结束,或者无法正常启动.这会造成这批运行的任务无法正常结束运行,处于pending的状态,导致后面的任务无法正常启动. 该问题困扰我们项目已经有半年左右了,一直没有想到很好的解决办法.主要原因就是任务的状态只能在浏览器中看出,无法通过后台的日志或者数据库查询得到.在浏览器中,如果我们看到某个任务长时间没有运行时间和状态的变化,就可以把这个任务当做是“僵尸”任务,从而可以将该任务手动结束掉(kill). 春节之后在网上看到一些有关爬虫的文章,

9、使用selenium + phantomjs 模拟浏览器登录网站

''' Selenium 模拟浏览器爬取网页信息 一种是真实的浏览器,也即是在程序调用浏览器时,会打开相应的浏览器来显示, 如:chrome,ie,safari,firefox 一种是伪浏览器,没有浏览器界面,只负责处理html,js和cookie的功能. 如:htmlunit,phantomjs 使用示例 ''' #author toloy from selenium import webdriver # driver = webdriver.Chrome("C:\Program Files