在爬虫开发中,大家可以很轻易地 bypass 所谓的 UA 限制,甚至用 scrapy 框架轻易实现按照深度进行爬行。但是实际上,这些并不够。关于爬虫的基础知识比如数据处理与数据存储多线程之类的。
请大家移步 FB:
该系列文章都是本人所写,能力有限请多包涵。
0x01 前言
在进行爬虫开发的过程中,我们会遇到很多的棘手的问题,当然对于普通的问题比如 UA 等修改的问题,我们并不在讨论范围,既然要将修养,自然不能说这些完全没有意思的小问题。
0x02 Selenium + Phantom ***
这个东西算是老生长谈的问题吧,基本我在问身边的朋友们的时候,他们都能讲出这条解决方案:
Selenium + Phantom *** (Firefox Chrome之类的)
但是真正的有实践过的人,是不会把这个东西投入生产环境的,首先更大的问题就是Selenium + Phantom *** 非常的慢,这种慢的原因就是因为他要加载这个网页所有的内容,比如图片资源,link 中的 CSS, *** 都会加载,而且还会渲染整个网页,在渲染结束之后才会允许你操作网页的元素。当然可能会有读者问,Selenium 作为可以自动化编写测试脚本的一个模块,他是自带 HOOK 功能的,在 Selenium 的 API 中也有介绍说 Selenium 可以控制等待某一个元素加载成功时返回页面数据。
没错的确是这样的,我们确实可以使用 Selenium 的内置 api 去操作浏览器完成各种各样的操作,比如模拟点击,模拟填表,甚至执行 js,但是更大的问题我们还是没有解决:归根结底是操作浏览器来进行工作的,启动需要打开浏览器(等待一定时间),访问网页之后渲染,下载相应资源,执行 *** ,这么多的步骤,每一个步骤都需要或多或少的等待时间,这就好比,我们就是在使用浏览器做这样的事情,只不过是加上了精准的鼠标定位而已。
当然说了这么多,Selenium 虽然不适合做生产解决方案,也并不是没有别的解决办法了。
0x03 execjs
execjs 是一个在 Python 中执行 js 的模块,听到这个,大家可能会觉得耳目一新:欸?那我是不是可以爬虫爬下来 js 代码然后手动控制 js 执行,然后就可以控制自己想要的元素,拿到想要的结果,而且也并不丢失效率。
但是我要说这样的想法,实际上是非常的 naive,虽然有了这个 js 引擎,但是,我们需要很多很多的轮子,为什么呢?来听我一步一步解释:
1. js 的强大之处其实并不在于松散的语法与容错,而是在于对 BOM 对象和 DOM 对象的操作。举个例子来说,比如,一个网页的表单,是通过操作执行 js 来提交的。 那么,问题就在于你有办法仅仅用这个 execjs 来执行这段 js 来提交表单么? 显然,这是行不通的。为什么呢?因为对于我们来说的话 execjs 是一个独立的模块,我们没有办法把我们静态扒下来的html 文档和 execjs 建立联系。
2. 如果非要建立联系,那么你需要自己完成 js 对 html 的 DOM 对象的绑定,具体怎么完成呢?js 在浏览器中怎么与 DOM 树绑定,你就需要怎么去做。但是要怎么做啊,首先你需要一个自己构建 DOM 树,然后才能进行手动绑定。这个轮子,确实是非常的大。
但是如果你真的有大把的时间,那么应该怎么去做这个事情呢?没错要不你去 HOOK 一个webkit 要不你去自己构建一个 html 的解析器。那么我就在这里稍微提一下这个很有趣的事情:如果构建一个 HTML 解析器:
对皮肤的伤害的十大黑客(我的世界黑客皮肤大全)(tiechemo.com)一直致力于黑客(HACK)技术、黑客QQ群、信息安全、web安全、渗透运维、黑客工具、找黑客、黑客联系方式、24小时在线网络黑...
本文目录一览: 1、拉心灵骇客皮肤好吗 安琪拉心灵骇客皮肤有哪些特效 2、王者荣耀安琪拉少女黑客怎么样_安琪拉新皮肤什么样 3、壬者荣耀安琪拉新皮肤 拉心灵骇客皮肤好吗 安琪拉心灵骇客皮肤有...
$sql = "SELECT DISTINCT gid FROM ".DB_PREFIX."comment WHERE ip='$ip'";阿里旺旺1.00.0912014/3/13 15:56Lev...
国内餐饮助手 餐馆新闻资讯 完全免费关心? 当海底捞火锅变成了国内餐饮服务行业的学习培训榜样,我国餐饮业自主创新运营的取得成功楷模时,大家必须干什么? 很显而易见,要想不过时,唯一能做的便是赶快学习培...
工具型应用美图秀秀也要开始做社区了。 36氪获悉,目前美图秀秀社区测试版已经开放给一些种子用户及部分地区的ios用户体验,社区的入口分别在首页icon位置以及右下角MT社交圈按钮位置。 此外,从首...
悄悄告诉你,夏季清风的拂动,让阔腿裤与凉鞋的搭配更仙哦 夏季是一个让人喜爱又厌恶的季节。喜爱的它的温度,能让你享受其他季节不能穿搭的衣服,讨厌也来自于着炎热的温度,高温让我们汗流浃背,即使穿的薄薄的...