- 博客(85)
- 资源 (12)
- 问答 (1)
- 收藏
- 关注
原创 R、ggplot2、shiny 汇总
前言:大家应该都知道,ggplot2 和 shiny 都是R语言七大武器之一,虽然它们的能力很流逼,也出来“行走江湖”多年,但是在国内相关的知识分享还是比较少。很多时候遇到问题不得不翻墙搜索,所以尽管自己资历尚浅,但我还是很希望能够将自己的知识点做个总结分享,希望对后来之人有所帮助! 因为最近工作比较忙,没有集中的时间跟精力,所以改变了一下写博客的方式:减小博客篇幅,然后用索引的方式总结、分享一下
2015-08-06 23:49:16 13968 4
原创 生活灵感汇总
前言:这是从中学就开始养成的一个习惯:不论是迷迷糊糊刚入睡,还是在吃饭、上课、看书,只要出现了新的灵感(或者说是新的观点),就必须立刻记录下关键字眼,日后空闲的时候再利用网络去做更全面的搜索和认识。我一直觉得,大部分人都是聪明的,特别是在日常生活中的某几个瞬间,就像一株大树偶尔会开出一两朵小花,那都是精华!可是这些往往都是瞬间凋逝的,我们甚至都还来不及感受到它们的出现,特别是对我这种思维跳
2015-08-02 02:02:40 5694 8
原创 websocket 爬虫
前言有些网站为了追求数据的实时更新,很多时候会采用 websocket 的方式,例如股票交易数据、数据货币交易平台等。关于websocket的机制,网上不乏相关资料。但关于websocket的爬虫文章,还是比较少的。所以特地写此文章做个分享,希望对他人有所帮助。 正文1、 首先要意识到,websocket和普通的HTTP请求有些不同。websocket的方式:用户浏览器(客户...
2018-08-08 13:05:28 9287 10
原创 爬虫应对银行安全控件
背景之前有个业务需求,抓取用户在银行的个人信息(经授权)。但由于安全控件的原因,程序在密码框无法输入,导致无法抓取。银行流水,对网贷平台而言这是非常重要的征信数据。我所知道的,就有好些爬虫在为安全控件的问题头疼,甚至有专门的外包,寻求解决方案。我做过各种检索和尝试,发现大部分方法都是无效的。但银行征信数据的采集,确实有些平台在做,那就说明这个问题能破,那也就没什么好担心的了,静下心一点...
2018-06-22 12:09:46 11813 6
原创 caffe.pb.h:9:42: fatal error: google/protobuf/stubs/common.h: 没有那个文件或目录
背景
2018-06-10 23:02:04 14806 9
原创 CNN识别学库bao的验证码
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...
2018-05-30 17:08:56 6432 9
原创 图形解锁验证码破解(附Python代码)
前言:爬虫开源死得快,新浪微博又改策略了。在去年的这个时候,微博还是没什么限制的。2016年12月我将新浪微博爬虫的代码作了一次更新,并将文章转到了知乎,爬微博的人似乎从那个时候开始多了许多。也许是这个缘故,微博开始对IP设了限制,接着禁了原来免验证码的登录方式,现在将weibo.cn的登录途径也关了,weibo.cn采用m.weibo.cn的登录,登录过程中可能出现图形解锁验证码。这种验证码比较少
2017-05-01 20:31:02 25295 13
原创 爬虫-根据公司名抓取相关员工的linkedin数据
前言:几个月前,应朋友要求,写了一个linkedin爬虫,难度不大,但功能还算好玩,所以就整理了一下放出来了。代码见Github:LinkedinSpider。 爬虫功能:输入一个公司名称,抓取相关员工的linkedin数据,字段见下方截图。 正文:先来说一下linkedin的限制:不登录的状态,不能进行搜索,但是可以查看某个用户的linkedin信息(不够全)。linkedin可以搜用户(最
2017-05-01 14:04:30 40261 14
原创 分布式多爬虫系统——架构设计
前言:在爬虫的开发过程中,有些业务场景需要同时抓取几百个甚至上千个网站,此时就需要一个支持多爬虫的框架。在设计时应该要注意以下几点:代码复用,功能模块化。如果针对每个网站都写一个完整的爬虫,那其中必定包含了许多重复的工作,不仅开发效率不高,而且到后期整个爬虫项目会变得臃肿、难以管理。易扩展。多爬虫框架,这最直观的需求就是方便扩展,新增一个待爬的目标网站,我只需要写少量 必要的内容(如抓取规则、解
2017-02-12 23:52:06 27656 13
原创 Python爬虫——DNS解析缓存
前言:这是Python爬虫中DNS解析缓存模块中的核心代码,是去年的代码了,现在放出来 有兴趣的可以看一下。 一般一个域名的DNS解析时间在10~60毫秒之间,这看起来是微不足道,但是对于大型一点的爬虫而言这就不容忽视了。例如我们要爬新浪微博,同个域名下的请求有1千万(这已经不算多的了),那么耗时在10~60万秒之间,一天才86400秒。也就是说单DNS解析这一项就用了好几天时间,此时加上DNS解
2017-02-12 12:21:20 10535 3
原创 scrapy_redis只能使用redis的db0?
背景:众所周知,Redis默认的配置会生成db0~db15共16个db,切分出16个db的一个作用是方便不同项目使用不同的db,防止的数据混淆,也为了方便数据查看。 Python在连接Redis时如果没有指定用哪一个db则默认使用db0。使用过scrapy_redis模块的同学也知道去重和种子队列都在db0上。现在有一个基于scrapy、Redis的分布式爬虫,是从同事那边接手过来的。原先没觉得s
2017-01-10 14:18:27 20734 6
原创 新浪微博爬虫分享(2016年12月01日更新)
新浪微博爬虫主要抓取微博用户的个人信息、发表的微博、关注和粉丝关系等。此次主要对种子队列和去重策略作了优化,并更新了Cookie池的维护,只需拷贝代码即可实现爬虫分布式扩展,适合大规模抓取。
2016-12-01 22:43:51 32043 48
原创 scrapy_redis种子优化
前言:继《scrapy_redis去重优化(已有7亿条数据),附Demo福利》优化完去重之后,Redis的内存消耗降了许多,然而还不满足。这次对scrapy_redis的种子队列作了一些优化(严格来说并不能用上“优化”这词,其实就是结合自己的项目作了一些改进,对本项目能称作优化,对scrapy_redis未必是个优化)。scrapy_redis默认是将Request对象序列化后(变成一条字符串)存入
2016-11-24 16:40:37 9987 1
原创 QQ空间爬虫分享(2016年11月18日更新)
前言:上一篇文章:《QQ空间爬虫分享(一天可抓取 400 万条数据)》 Github地址:QQSpider Q群讨论:很抱歉QQSpider这个爬虫过了这么久才作更新,同时也很感谢各位同学的肯定和支持! 这次主要替换了程序里一些不可用的链接,对登录时的验证码作了处理,对去重队列作了优化。并且可以非常简单地实现爬虫分布式扩展。 使用说明:启动前配置:需要安装的软
2016-11-19 01:31:47 24856 8
原创 天猫双11爬虫(福利:212万条商品数据免费下载)
2016年12月12日更新:《天猫双12爬虫(福利:266万条商品数据免费下载)》背景:2016年11月11日,中午刷了一下天猫,突然来了兴致想要把天猫上参与双11活动的商品都爬下来。双11,不仅因为打折商品的数据比普通数据更有价值,更重要的是在双11,天猫、京东为了容纳大流量,肯定会把防爬机制都暂停了,这种机会难得,岂能不爬? 之前没有爬过天猫/京东这些电商平台,对他们网站的结构和防爬机制也不是
2016-11-17 15:03:23 16237 19
原创 scrapy_redis去重优化(已有7亿条数据),附Demo福利
背景:前些天接手了上一位同事的爬虫,一个全网爬虫,用的是scrapy+redis分布式,任务调度用的scrapy_redis模块。大家应该知道scrapy是默认开启了去重的,用了scrapy_redis后去重队列放在redis里面。我接手过来的时候爬虫已经有7亿多条URL的去重数据了,再加上一千多万条requests的种子,redis占用了一百六十多G的内存(服务器,Centos7),总共才一百七十
2016-11-10 14:48:21 34108 23
原创 基于Redis的Bloomfilter去重(附Python代码)
前言:“去重”是日常工作中会经常用到的一项技能,在爬虫领域更是常用,并且规模一般都比较大。去重需要考虑两个点:去重的数据量、去重速度。为了保持较快的去重速度,一般选择在内存中进行去重。数据量不大时,可以直接放在内存里面进行去重,例如python可以使用set()进行去重。当去重数据需要持久化时可以使用redis的set数据结构。当数据量再大一点时,可以用不同的加密算法先将长字符串压缩成 16/
2016-11-10 12:32:45 27665 17
原创 User-Agent 汇总
前言:近半年没有写博客了,一打开Markdown竟然不知道从何开始。半年时间,要分享的东西比较多,今天第一篇,分享一个我整理后的 User-Agent 集合。 对于爬虫开发者而言,我们经常修改浏览器的 User-Agent 伪装成移动端,从而像手机浏览器一样访问目标网站。爬虫程序带上不同的 User-Agent,可以从m端(甚至是wap端)爬取目标网站。具体方法见《爬虫福利:教你爬wap站》,下面
2016-09-09 00:43:54 32460 2
原创 基于Redis的三种分布式爬虫策略
前言:爬虫是偏IO型的任务,分布式爬虫的实现难度比分布式计算和分布式存储简单得多。 个人以为分布式爬虫需要考虑的点主要有以下几个:爬虫任务的统一调度爬虫任务的统一去重存储问题速度问题足够“健壮”的情况下实现起来越简单/方便越好最好支持“断点续爬”功能Python分布式爬虫比较常用的应该是scrapy框架加上Redis内存数据库,中间的调度任务等用scrapy-redis模块实现。
2016-03-27 17:27:31 20323 2
原创 新浪微博分布式爬虫分享
代码请移步GitHub:SinaSpider(上面有跳转链接,别再问我代码在哪里了) 爬虫功能:此项目实现将单机的新浪微博爬虫(见《新浪微博爬虫分享(一天可抓取 1300 万条数据)》)重构成分布式爬虫。Master机只管任务调度,不管爬数据;Slaver机只管将Request抛给Master机,需要Request的时候再从Master机拿。 环境、架构:开发语言:Python2.7开
2016-03-16 15:38:48 25259 5
原创 爬虫福利:教你爬wap站
前言:玩过爬虫的朋友应该都清楚,爬虫难度:www > m > wap (www是PC端,m和wap是移动端,现在的智能手机一般用的是m站,部分老手机用的还是wap),原因也很简单,现在的网站越来越多地使用AJAX加载,反爬虫机制也厉害。而像wap这种移动端网站限制比较小,网页结构也简单,我们获取、解析起来都简单很多,理论上速度也会快很多。所以如果允许的话我们尽量采用wap站抓取。 正文:可
2016-03-06 19:42:32 24858 4
原创 Scrapy见面第五天
这算是我第一次使用框架吧,说来惭愧。 此前用Request带上cookie实现、(稍微)完善了QQ空间的爬虫(传送门),接下来想实现分布式去爬。其实只要能实现待爬QQ队列的共享,分布式的主要问题也就解决了。但是觉得这样实现的爬虫项目有点“不正规”,所以想用Scrapy框架和Redis数据库来整顿现有爬虫。无奈公司里也没什么人指点,全凭一人摸爬滚打,过程有点痛苦,但自信只要敢啃,还是可以拿下的,不成
2016-03-06 00:08:40 4584 2
原创 QQ空间爬虫分享(一天可抓取 400 万条数据)
代码请移步GitHub:QQSpider爬虫功能:QQSpider 使用广度优先策略爬取QQ空间中的个人信息、日志、说说、好友四个方面的信息,详细可见数据库说明。 判重使用“内存位”判重,理论上亿数量级的QQ可瞬间判重,内存只占用400M+。 爬虫速度可达到单机每天400万条数据以上(具体要考虑网速、网络带宽、稳定性等原因。我在学校是400万+,但在公司那边却只有六成的速度,普通家庭网络可能会更
2016-03-01 13:30:15 58466 38
原创 SAS_maps(二)
前言:觉得原来的地图不好看,又花了两天时间实现一个新的样式,勉强算是一个动态的地图吧。 在上面一篇博客《 SAS_maps(一) 》只是放出了一些效果图,并没有记录、分享作图的一些技巧,在此也补充一下。先上效果图: SAS动态地图主要有两种: 图一和图二是 htm 格式的,利用鼠标可查看地图信息,也可鼠标点击查看省份内各地区的详细信息。 图三和图四是 gif 格式的动态图,将各个省份
2016-02-28 10:05:54 2858
原创 浅识SkipList
跳表(SkipList)简介:给你一个有序数组,如果现在需要查找某一个数字,你可能会用二分法。 但是如果给你的是一个有序链表,那就用不上二分法了,你能想到什么方法? 跳表是一种很好的选择,理解和实现出来也相对比较容易。 跳表的查询:例如给出链表: 30 → 40 → 50 → 60 → 70 → 90 现在要插入一个 80 ,如果是用普通方法从头到尾逐个搜索的话需要比较的次数是 6 。但是如
2016-02-27 10:56:39 1507
原创 Python MongoDB 插入数据,已存在则不执行,不存在则插入
前言:想把QQ日志爬虫(Python)爬下来的日志保存到 MongoDB 里面。 但 insert 的时候报错:E11000 duplicate key error collection: QQ.Blog index: _id_ dup key: { : "965464518_1301232446" }后来知道错误的原因是:插入的数据和已有数据的 ID 重复了。我想要的是:插入一篇日志,如果该日志
2016-02-19 11:24:14 21697 8
原创 Python报错:Visual C++ is required和ImportError: DLL load failed
前言:最近在 Github 里面找代码看看各路大神如何用 Python 破解验证码。在安装 numpy 和 scipy 的过程中遇到一些问题,在此记录一下,希望对遇到同样问题的同学有所帮助。主要的问题有: 1、安装 numpy 的时候遇到 “unable to find vcvarsall.bat” 和 “Setup script exited with error: Microsoft Visu
2016-02-15 17:19:11 4257
原创 Python处理验证码第一篇(pytesser初探及报错处理)
前言:春节期间,无法全身心投入地去写爬虫,那就玩玩验证码吧,应该比较有趣!首次接触验证码识别,用pytesser接触一下最简单的验证码先,代码参照:使用python以及工具包进行简单的验证码识别。具体细节可以参见原文,里面安装和报错处理没有详细记录,我在此处主要记录一下自己的安装及处理过程。 效果:可识别以下类型的验证码: 正文:代码:# encoding=utf-8from
2016-02-10 18:19:43 12119 11
原创 SublimeText3 安装和配置,以及配置 Python 环境
前言:我以前就用着 SublimeText 2,但是 python 环境一直不能用。昨天看到《如何优雅地使用 Sublime Text》这篇文章,据说 SublimeText 3 能瞬间启动,就忍不住想换掉2版了。我主要在日常查看、编辑文档的时候用一下SublimeText,偶尔作为编辑器敲敲Python代码。 网上安装的教程很多,我主要记录一下我自己安装的和配置的过程,作一个备忘。 文件下载地
2015-12-30 14:45:48 11006 1
原创 SAS_maps(一)
前言:这些天玩了一些SAS的地图,用的是gmap过程步,在这里放一下demo,有兴趣的可以看看。 更多可见:《 SAS_maps(二) 》。代码请移步GitHub:SAS_maps。 效果图: 资源分享:以上的几个图是在SAS9.3的base里面实现的,个人觉得有几个不足:SAS9.3自带的地图坐标数据有点旧(当然可以自己去官网更新),图形样式不够美观炫酷,动态性实现起来比较麻烦(现在正在用宏
2015-12-21 12:09:14 2488
原创 1号小爬虫:普通的爬虫,下载百度壁纸
(更多爬虫请见:[我的爬虫史](http://blog.csdn.net/Bone_ACE/article/details/50195839))代码说明:曾经模仿实现过下载淘宝MM图片的爬虫,现在重新拾起爬虫,也是先从下载图片开始。本爬虫用来下载百度壁纸(传送门)。 源代码:#encoding=utf-8import urllibimport urllib2impo
2015-12-07 17:11:03 2959 1
原创 我的爬虫史
前言:曾经模仿别人的代码写过几个小爬虫,不过都是皮毛而已,下载一些图片,很简单的爬虫。 现在想系统的学习一下python网络爬虫,包括爬虫多线程、登陆、验证码、分布式、优化等方面。学习的方式是直接爬,一点点深入,遇到问题逐个解决。希望利用博客记录一下自己学习爬虫的过程,放出源代码,希望对后面学习的朋友提供个参考,同时希望通过大家的指正进行查缺补漏。运行环境: python2.7,Eclipse+
2015-12-07 16:31:06 4038
原创 SAS Visual Analytics(VA)安装教程
十月的最后一天,分享一下SAS VA的安装过程。过程有点曲折,老是出现报错,而且因为软件比较大(安装好有三十几 G),重装一次就要两个钟以上。此处分享几个文档(传送门),和我在安装过程遇到的问题,希望对有需要的人有所帮助。 (因为公司机密,具体的安装步骤就不分享了,只分享一下我从网上搜罗的一些资料。) 一、首先在安装 VA 之前要先安装几个依赖软件:Python 、pywin32、Power
2015-10-31 23:52:57 4986 3
原创 R语言零碎知识集合
(更多内容请见:R、ggplot2、shiny 汇总) 1、数据框按照某一列排序: 例如存放学生信息的数据框 rt(name,sex,age,score),按照分数 score 递减排序:> rt[order(rt[,4],decreasing=T),] ## 特别注意后面的逗号别忘了! 2、小数取整: > x <- 3.555555> ceiling(x)[1] 4> floo
2015-09-22 14:22:29 3985
转载 傅里叶分析之掐死教程(完整版)
原文链接:http://zhuanlan.zhihu.com/wille/19763358作 者:韩 昊知 乎:Heinrich微 博:@花生油工人知乎专栏:与时间无关的故事谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张晶泊老师。转载的同学请保留上面这句话,谢谢。如果还能保留文章来源就更感激不尽了。——更新于20
2015-09-21 22:09:44 3458 2
翻译 R语言面向对象指南
原文链接:OO field guide 。 面向对象指南:这一章主要介绍怎样识别和使用 R 语言的面向对象系统(以下简称 OO)。R 语言主要有三种 OO 系统(加上基本类型)。本指南的目的不是让你精通 R 语言的 OO,而是让你熟悉各种系统,并且能够准确地区分和使用它们。 OO 最核心的就是类和方法的思想,类在定义对象的行为时主要是通过对象的属性以及它和其它类之间的关系。根据类的输入不同,类对
2015-09-21 21:53:00 11457
原创 R::shiny 点击事件-Demo
前言:代码请见GitHub:https://github.com/liuxingming/shiny-click-demo 效果请见Shinyapps(网页打开比较慢):https://bone-ace.shinyapps.io/shiny_click_demo 火狐浏览器下运行效果: 说明:1、代码编写环境: R version 3.1.3 (2015-03-09) RStu
2015-09-09 22:55:36 6143
转载 GitHub上README.md写法暨GFM语法解读
Github 中 README.md 文件的编写教程,类似于 CSDN 里面的 markdown 语法,但有些许不同。
2015-09-09 17:05:50 2343
Python2.7.14 for windows64位 最新版下载
2017-10-19
phantomjs-2.1.1-linux-x86_64.tar.bz2
2016-11-25
SublimeText3工具箱
2015-12-30
FP-Growth算法python实现(完整代码)
2015-07-04
广工数据挖掘12、13、14年试题+课后答案+知识点总结+上课PPT+课外资料
2015-06-15
求三个很简单的 Oracle 语句(只是因为英文题目,看着有点晕而已)
2015-10-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人