前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

1、安装virtualenv

virtualenv是一个常用的用来创建python环境的工具。小喵用这个有两个原因,一是为了不污染本机的环境,二是在本机直接安装库的时候出了一个权限的问题。

virtualenv的安装十分简单,使用pip工具就可以安装。

1pip install virtualenv

待程序执行结束,你就会开心的发现自己已经有了virtualenv这个工具了。

2、创建python环境

virtualenv的使用非常的方便。

建立新的运行环境:virtualenv <env-name>

进入相应的独立环境:source <env-path>/bin/activate

执行完第一个指令后,就会创建成功一个python环境,执行第二个指令后,就会发现命令行的起始位置有变化。这时候python、pip等工具就变成使用这个新环境的了,当然也可以使用which python来查看。

3、安装selenium

进入新环境后,pip安装的依赖库都会在新环境中安装,不会影响主机自身的python。使用pip 安装selenium:

1pip install selenium

至此,我们的基本环境就搭建完了。

4、安装PhantomJs

这个只在从官网上下载就可以:http://phantomjs.org/download.html

首页

为了减小图片的大小,小喵把窗口做了缩放。首页大致是这个样子。

图1 漫画首页

各类信息十分的明了。我们关注的就是下面的漫画列表。通过Chrome强大的审查元素的功能,我们立刻就能定位到章节的位置。(对着感兴趣的位置->右键->审查 就能找到)

图2 章节的节点

可以看到,章节所在的区域的id是play_0,学过前端的童鞋都应该知道,一个页面中id通常唯一标示一个节点。因此如果我们能够获取这个页面的话,查找id为play_0的节点就能一下子缩小搜索范围。

而每个章节的信息都是一个a标签,标签的href是对应章节的具体网址,标签的文本部分是章节名。这样相对关系就得出了:div#play_0 > ul > li > a。

首页的分析就到此结束。

章节页面

我们把鼠标放在图片这个区域->右键->审查

咦,我们的右键怎么按不了?

那么我们如何绕过这个陷阱呢?

很简单,我们不用右键即可。打开浏览器的开发者工具选项,找到elements这个选项。可以看到一个复杂的结构(其实和上面审查元素之后的结果一样)。之后不断的选中标签,当标签被选中时,左侧页面中对应的位置会有蓝色。多试几次,最终就能找到对应的位置。

图3 漫画图片

这是一个img标签,对应的id是qTcms_pic。这样找到这个id,就能找到这个img标签,根据src就能找到图片的具体URI地址。

接下来是找到下一张图片的地址。这时候需要查看下一页这个按钮的内容。用相同的方法,很容易定位成功。

代码实现

上面是一个简单的例子,第一步import依赖的库。

第二步,获得一个浏览器实例。selenium支持多种浏览器。使用firefox之外的浏览器都需要下载驱动(selenium本身自带了firefox的驱动)。驱动下载地址:https://pypi.python.org/pypi/selenium。驱动下载完之后将它的路径加入到PATH里,确保驱动程序能够被访问到。或者显式的把驱动程序的地址当参数传入。像下面一样调用:

1browser = webdriver.PhantomJs('path/to/phantomjs')

第三步,用get的方式打开网页。

最后,通过browser对象来解析和处理页面。

2,获取章节的链接信息

在上面的解析页面的时候,我们知道了章节信息的位置:div#play_0 > ul > li > a。这样就可以解析出章节信息。browser支持一大堆的选择器。大大简化我们查找节点的工作。

3,给定一个章节的地址,章节中的图片

这一步涉及到节点的获取、模拟鼠标的点击以及资源的下载。selenium的点击实现特别的人性化。只需要获取节点然后调用click()方法就搞定。资源的下载网上有许多教程,主要有两个方法,通过模拟右键另存为,和获取url用其他工具下载。

python使用selenium + PhantomJs搭建的简单漫画爬虫工具相关推荐

  1. 使用 Python 的 flask 架构搭建一个简单web网站

    使用 Python 的 flask 架构搭建一个简单web网站 1.flask最简单框架,返回hello world: from flask import * app = Flask(__name__ ...

  2. python会计实证研究_实证研究者的爬虫工具选择

    作为一个实证研究小青年??,有段时间因为研究的需要,要做定向爬虫.这是自己学习Python最初的缘由.那个时候爬虫的材料还不是太多,自己在网上找了一些文章和电子书来学习.边学边试,不久就完工了. 完工 ...

  3. python Scrapy Selenium PhantomJS 爬取微博图片

    1,创建项目 scrapy startproject weibo #创建工程 scrapy genspider -t basic weibo.com weibo.com #创建spider 目录结构 ...

  4. Python下Selenium PhantomJs设置header的方法

    2019独角兽企业重金招聘Python工程师标准>>> 代码 话不多说,直接上代码 from selenium import webdriver from selenium.webd ...

  5. Python 之selenium+phantomJS斗鱼抓取案例

    from selenium import webdriver from bs4 import BeautifulSoup import timeif __name__ == '__main__':dr ...

  6. python简易英文字典_bing的简单英文字典工具

    今天看到园友心白水撰写的<简单翻译工具--必应字典第三方API使用方法>,感觉很不错,所以用Python也写了一个.源码如下: 1 importurllib.request2 import ...

  7. python大神们都在用的爬虫工具,你知道几个?

    Python 爬虫的工具列表大全 网络 通用 异步 网络爬虫框架 功能齐全的爬虫 其他 HTML/XML解析器 通用 清理 文本处理 通用 转换 字符编码 Slug化 通用解析器 人的名字 电话号码 ...

  8. python selenium爬虫工具

    今天seo的同事需要一个简单的爬虫工具, 根据一个url地址,抓取改页面的a连接,然后进入a连接里面的页面再次抓取a连接 1.需要一个全局的set([])集合来保存抓取的url地址 2.由于现在单页面 ...

  9. 爬虫python需要什么软件-python大神们!都在用什么爬虫工具呢?

    python大神们!都在用什么爬虫工具呢? Python开发爬虫常用的工具总结 reqeusts:Python HTTP网络请求库; pyquery: Python HTML DOM结构解析库,采用类 ...

最新文章

  1. 云计算时代的数据库运行
  2. iOS开发-简单工厂模式
  3. 实现控制台上的进度条
  4. 设计出python_Python: 实际项目中抽象出的小项目设计
  5. mysql rr和rc_MySQL Transaction--RC和RR区别
  6. iphone照片删掉又出现_30条让人相见恨晚的iPhone使用技巧。
  7. mysql explain ref const_MySQL EXPLAIN 详解
  8. PHP 5.2、5.3、5.4、5.5、5.6 对比以及功能详解
  9. Unity TextMeshPro中文显示为方块
  10. 谈谈Linux的栈回溯与妙用
  11. appnode报错_appnode
  12. 肥城市c语言入门自学零基础,2019年自考C语言程序设计模拟试题十三答案.doc
  13. java实现微博热搜榜_微博热搜数据
  14. java se11.0.1安装_jdk11下载安装及环境变量配置
  15. 华三路由交换配置命令_华为-华三交换机路由器命令大全
  16. Pale Moon 苍月浏览器 24.0.1 发布
  17. 【Java项目实战】CRM客户关系管理系统
  18. When inserting 1, 2, 3, 6, 5, and 4 one by one into an initially empty AVL tree,which kinds of rotat
  19. 64位32位 java 浏览器_Java编程语言下 Selenium 驱动各个浏览器代码
  20. 2008服务器文件夹镜像,【玩转腾讯云】导入镜像-Windows 2008 R2 Datacenter

热门文章

  1. 关于区块链的想法和感想
  2. 人人皆可操作的108个抖音项目:汽车领域细分及玩法变现 (7)
  3. android换肤动画,Android换肤(二) — 插件式换肤
  4. excel隔行显示不同颜色
  5. 计算机考试行高怎么设置,Excel隔行调整行高的四种有效方法
  6. ArcBlock冒志鸿:区块链3.0时代最先应用于政府服务体系|筱静观察
  7. 一流的匠人,必有一流的心性:工作是人生最尊贵、最重要、最有价值的行为
  8. Android 应用提示Detected problems with API问题
  9. CFML----一门在国外很多大公司得到应用的语言
  10. 大数据共享模糊查找_120多个查找知识共享媒体的地方