基于Redis的三种分布式爬虫策略

前言:爬虫是偏IO型的任务,分布式爬虫的实现难度比分布式计算和分布式存储简单得多。个人以为分布式爬虫需要考虑的点主要有以下几个:爬虫任务的统一调度爬虫任务的统一去重存储问题速度问题足够“健壮”的情况下实现起来越简单/方便越好最好支持“断点续爬”功能Python分布式爬虫比较常用的应该是scrapy框架加上Redis内存数据库,中间的调度任务等用scrapy-redis模块实现。此处简单介绍一下基于Redis的三种分布式策略,其实它们之间还是很相似的,只是为适应不同的网络或爬虫环境作了一些调整而已 阅读全部

python操作phantomjs使用详解

  PhantomJS俗称为:无界面的浏览器  Selenium: 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。Selenium 自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。但是我们有时候需要让它内嵌在代码中运行,所以我们可以用一个叫 PhantomJS 的工具代替真实的浏览器。  PhantomJS是一个基于webkit的JavaScript API。它使用QtWebKit 阅读全部

5分钟,用OpenResty做一个隧道代理

什么是隧道代理?我们来看下面这张截图: 所谓隧道代理,就是一个能帮你自动更换代理 IP 的代理服务。在你的代码里面,你只需要把一个入口代理地址写死,然后正常发起请求,而目标服务器接收到的请求,每一次都是不同的代理地址。 在某代理网站上,隧道代理50并发每秒的价格是4000元/月: 而常规的,先请求接口拿到一批代理 阅读全部

谷歌翻译接口研究

前面介绍了有道翻译接口 破解,接下来试一试谷歌翻译(Github项目地址)同样,查看首页元素,如下:得到 Request URL 和 Request Method。然后查看 From Data,可以看到一系列的参数,不过我们重点只需要关注 tk。按照推断,tk 参数值也是一种签名,通过某种方法得到。我们从众多的 js 代码中可以发现一些端倪。通过格式化 js 代码,得到实际上,已经有大佬将计算 tk 代码破解了,这里我就直接放上来:function token(a) {&nb 阅读全部

域名注册查询接口收集

本篇文章已加密,请输入密码后查看。

阅读全部

Fingerprintjs2:一款开源设备指纹采集器

Fingerprintjs2是一款开源的设备指纹采集器。最初的fingerprintjs库创建于2012年,但是由于新版本的开发很难保持向后兼容,因此Fingerprintjs2项目中增加了很多的新内容。该项目将更多、更有效的来源用于指纹识别,并且可配置,也就是说用户可以选择性地开启其中的选项。该项目还将重点关注IE插件,尤其是在中国流行的QQ、Baidu等。另外,该项目使用了semver(语义化的版本控制系统)。 安装使用CDN在线获取:https://cdnjs.com/libra 阅读全部

【转载】10家付费爬虫代理详细对比评测!

前言  随着大数据时代的到来,爬虫已经成了获取数据的必不可少的方式,做过爬虫的想必都深有体会,爬取的时候莫名其妙 IP 就被网站封掉了,毕竟各大网站也不想自己的数据被轻易地爬走。  对于爬虫来说,为了解决封禁 IP 的问题,一个有效的方式就是使用代理,使用代理之后可以让爬虫伪装自己的真实 IP,如果使用大量的随机的代理进行爬取,那么网站就不知道是我们的爬虫一直在爬取了,这样就有效地解决了反爬的问题。  那么问题来了,使用什么代理好呢?这里指的代理一般是 HTTP 代理,主要用于数据爬取。现在打开 阅读全部

chrome headless+selenium+python+(ubuntu 16.04/centos7) 下的实现

Ubuntu 16.04 下:0x01 安装chrome1 下载源加入系统源列表sudo wget http://www.linuxidc.com/files/repo/google-chrome.list -P /etc/apt/sources.list.d/ 2 导入google软件公钥wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key a 阅读全部

【模拟浏览器】htmlunit、PhantomJS、Chrome headless

我们在通过Selenium运行自动化测试时,必须要启动浏览器,浏览器的启动与关闭必然会影响执行效率,而且还会干扰你做其它事情(本机运行的话)。那能不能把自动化测试的运行放在后台?当然可以!htmlunit 项目可以模拟浏览器运行,是一个没有界面的浏览器,运行速度快。PhantomJS 是一个基于webkit的JavaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码。任何你可以在基于webkit浏览器做的事情,它都能做到。参 阅读全部

【转载】最好的语言 PHP + 最好的前端测试框架 Selenium = 最好的爬虫(上)

入职冰鉴科技做爬虫开发已经半年多了,陆续开发维护了几个爬虫以后终于在 web 端爬虫这一块有了登堂入室的感觉。中间踩了许多坑,也对爬虫的许多细节有了自己的认识,所以今天希望能分享一些爬虫经验。虽然爬虫的很多东西不好说太细,因为说太细了别人马上有针对性的反爬虫了,而且很多技巧业界没用通用的解决方案(别人就算做出来了也不太愿意分享),都是我自己慢慢摸索出来的。但是我认为适当的业界 /友商之间的技术交流是必要的,不能闭门造车,我也渴望能和业界 /友商有更多私下的深入交流,大家多切磋才能进步嘛。最近我在 阅读全部

【转载】最好的语言 PHP + 最好的前端测试框架 Selenium = 最好的爬虫(下)

在上篇中,我主要讲了用 PHP 写爬虫时的一些经验,在下篇中我会对 Selenium 进行展开,把我总结的 Selenium 技巧和一些坑的处理方法介绍给大家。上篇: https://www.v2ex.com/t/324309我博客原文:《最好的语言 PHP + 最好的前端测试框架 Selenium = 最好的爬虫(下)》为什么是 Selenium在简单的爬虫中直接用 httpclient 就可以爬了,但是反爬虫比较厉害的情况下,有很多反爬虫的机制,比如:各种 302 跳转、 js 检 阅读全部

【转】爬取搜索引擎之寻你千百度

  自从Google退出中国市场,Baidu就成了国内搜索引擎巨头,所谓树大招风,一直以来百度成为国内众多黑客攻击的对象。又因为其本身作为一款搜索引擎,拥有很多的网络资源,因此借助baidu来获取海量数据,成为了一种便捷有效的信息收集途径。虽然baidu在爬虫算法上没有google那么优秀,但对中文搜索的支持并不会很差(小小吐槽一番百度),然而在通过百度爬取数据时,我们往往会遇到百度自身的反爬虫措施,如何解决这些反爬虫措施,将会是本文的重点。  关于反爬虫的技术,网上有很多资源,方法不外乎(代理 阅读全部

【转】爬取搜索引擎之搜狗

发表于 2017-03-19  上篇讲述了爬取百度搜索结果时遇到的问题以及解决方案,本篇继续爬取搜索引擎的话题,说说爬取搜狗时将会遇到什么问题?以及怎么去解决。搜狗搜索引擎的名气在国内远没有百度那么大,但却称得上是后起之秀,其搜索结果的准确度以及爬虫算法都还不错,可以说搜狗搜索在国内是继百度搜索之外的又一良好选择,想要了解百度搜索相关信息的,可以移步:爬取搜索引擎之寻你千百度  关于反爬虫的技术,网上有很多资源,方法不外乎(代理、识别验证码、分布式架构、模拟浏览器、ADSL切换ip等),这些不是 阅读全部

【转】搜狗微信公众号文章反爬虫完美攻克

2017年11月27日 13:43:16很简单,selenium + chromedriver,搜狗的部分直接在chrome模拟浏览器内部操作即可,而mp.weixin.qq.com则是腾讯的了,不反爬虫,用urllib requests等等即可。需要扫码登陆,不扫码只能采取10页数据[python] view plain copyfrom selenium import webdriver  import time 阅读全部

【转】记搜狗微信号搜索反爬虫

反爬虫 2016-03-16 17:57RSS Factory前段时间又出问题了,访问微信公众号RSS一直500,完全没法用了。 经调试,发现由于爬取数据太频繁,触发了搜狗微信公众号的反爬虫,探索了下反爬虫的规则:没有带Cookie的情况下,频繁访问触发反爬虫带Cookie的情况下,频繁访问偶尔触发反爬出,偶现500错误不带Cookie情况下,隔几个小时范围一下不会触发反爬虫Cookie有几个关键字段用于识别爬虫,SUID,SNUID,SUV。 不带Cookie请求任意搜狗微信公众号 阅读全部