PhantomtomJS

PhantomJS是一款无界面浏览器,其自动化操作流程和谷歌浏览器是一致的。由于是无界面的,为了能够展示自动化操作流程,PhantomJS为用户提供了一个截屏的功能,使用save_screenshot函数实现。

selenium+phantomjs 是爬虫终极解决方案。有些网站上的内容信息是通过动态加载js形成的,所以使用普通爬虫程序无法回去动态加载的js内容。例如豆瓣电影中的电影信息是通过下拉操作动态加载更多的电影信息。

下载

下载地址:http://phantomjs.org/download.html

基本使用

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time # phantomjs路径
path = r'E:\phantomjs-2.1.1-windows\bin\phantomjs'
driver = webdriver.PhantomJS(path) # 打开百度
driver.get('http://www.baidu.com/')
time.sleep(3) # 截图
driver.save_screenshot(r'baidu.png') # 查找input输入框
search = driver.find_element_by_id('kw') # 往框里面写文字
search.send_keys('美女')
search.send_keys(Keys.ENTER)
time.sleep(2) # 截图
driver.save_screenshot(r'whow.png') time.sleep(3) # 关闭浏览器
driver.close()

综合操作

需求:尽可能多的爬取豆瓣网中的电影信息。

from selenium import webdriver
import time url = 'https://movie.douban.com/typerank?type_name=%E6%81%90%E6%80%96&type=20&interval_id=100:90&action='
path = r'E:\phantomjs-2.1.1-windows\bin\phantomjs' # 创建无界面浏览器对象
driver = webdriver.PhantomJS(path) # 发送url请求
driver.get(url)
time.sleep(2) # 截图
driver.save_screenshot(r'1.png') # 执行js代码(让滚动条向下偏移n个像素(作用:动态加载了更多的电影信息))
js = 'window.scrollTo(0, document.body.scrollHeight)'
driver.execute_script(js) # 该函数可以执行一组字符串形式的js代码
time.sleep(2) driver.execute_script(js) # 该函数可以执行一组字符串形式的js代码
time.sleep(2) # 截图
driver.save_screenshot('2.png') # 获取页面html源码
html_source = driver.page_source # 该属性可以获取当前浏览器的当前页的源码(html) # 将页面HTML源码写入文件
with open('source.html', 'w', encoding='utf-8') as f:
f.write(html_source) # 关闭浏览器
driver.close()

06 PhantomJS浏览器的更多相关文章

  1. 使用selenium和phantomJS浏览器登陆豆瓣的小演示

    # 使用selenium和phantomJS浏览器登陆豆瓣的小演示 # 导入库 from selenium import webdriver # 实例化一个浏览器对象 web = webdriver. ...

  2. 使用selenium和phantomJS浏览器获取网页内容的小演示

    # 使用selenium和phantomJS浏览器获取网页内容的小演示 # 导入包 from selenium import webdriver # 使用selenium库里的webdriver方法调 ...

  3. phantomJS浏览器

    无界面浏览器 下载解压缩 http://phantomjs.org/download.html selenium调用 from selenium import webdriver import tim ...

  4. PhantomJs浏览器下载

    下载地址: http://phantomjs.org/download.html 链接:https://pan.baidu.com/s/1g9ZHLm0Fg56LN30CsDu-CA 密码:qhar

  5. 第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS

    第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS PhantomJS虚拟浏览器 phantomjs 是一个基于js的webkit内核无头浏览器 ...

  6. 十六 web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS

    PhantomJS虚拟浏览器 phantomjs 是一个基于js的webkit内核无头浏览器 也就是没有显示界面的浏览器,利用这个软件,可以获取到网址js加载的任何信息,也就是可以获取浏览器异步加载的 ...

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

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

  8. Python爬虫(二十一)_Selenium与PhantomJS

    本章将介绍使用Selenium和PhantomJS两种工具用来加载动态数据,更多内容请参考:Python学习指南 Selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试 ...

  9. selenium设置proxy、headers(phantomjs、Chrome、Firefox)

    phantomjs 设置ip 方法1: service_args = [ '--proxy=%s' % ip_html, # 代理 IP:prot (eg:192.168.0.28:808) '--p ...

随机推荐

  1. UVA - 11082 Matrix Decompressing

    2. B - Matrix Decompressing 题意:定义一个R*C的正整数矩阵(1<=R,C<=20),设Ai为前i行所有元素之和,Bi为前i列所有元素之和. 题目已知R,C和数 ...

  2. 洛谷 P1072 Hankson 的趣味题 || 打质数表的分解质因数

    方法就是枚举,根据b0和b1可以大大减小枚举范围,方法类似这个http://blog.csdn.net/hehe_54321/article/details/76021615 将b0和b1都分解质因数 ...

  3. 题解报告:poj 1113 Wall(凸包)

    Description Once upon a time there was a greedy King who ordered his chief Architect to build a wall ...

  4. iphone6,键盘收起,H5页面下面出现空白

  5. 136 Single Number 数组中除一个数外其他数都出现两次,找出只出现一次的数

    给定一个整数数组,除了某个元素外其余元素均出现两次.请找出这个只出现一次的元素.备注:你的算法应该是一个线性时间复杂度. 你可以不用额外空间来实现它吗? 详见:https://leetcode.com ...

  6. 为RecyclerView打造通用Adapter 让RecyclerView更加好用

    原文出处: 张鸿洋 (Granker,@鸿洋_ ) 一.概述 记得好久以前针对ListView类控件写过一篇打造万能的ListView GridView 适配器,如今RecyclerView异军突起, ...

  7. Mysql读写分离操作之mysql-proxy

    常见的读写方式 基于程序代码内部实现 在代码中根据select.insert进行选择分类:这类方法也是生产常用的,效率最高,但是对开发人员比较麻烦.架构不能灵活调整 基于中间件的读写分离: mysql ...

  8. salt-stack系列报错

    master启动报错 实验环境为: [root@master salt]# cat /proc/version Linux version 3.10.0-327.el7.x86_64 (mockbui ...

  9. 使用Appache部署WEB服务器

    Apache的起源(这个就不说了,百度下就都有了) 简介:Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行, ...

  10. JS执行保存在数据库中的JS代码

    function createScript(script) { var myScript = document.createElement("script"); myScript. ...