中乘风,生于海南,中国《英雄联盟》电子竞技职业选手,RNG战队上单。 2015年加入RNG战队并帮助队伍获得2017年LPL春季赛亚军、2017年LPL夏季赛亚军、2017年全球总决赛四强、2018年LPL春季赛冠军、2018年MSI季中赛冠军、RNG队伍2018英雄联盟洲际赛冠
我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
前言 对于那些通过JS来渲染数据的网站,我们要解析出它的html来才能取到想要的数据,通常有两种解决办法: 1、通过selenim调用浏览器(如chrome firefox等)来爬取,将解析的任务交给浏览器。
这里增加应用场景,让图片下载结合自动识别,实现识别转换图片中的电话号码。 背景 在爬取广西人才网的过程当中,发现广西人才网企业联系电话那里不是str,而是将电话生成了一张图片,遇到这种情况,通常有三种不同的处理办法: 将图片地址保存下来,只存url ...
通过前面两章的熟悉,这里开始实现具体的爬虫代码 广西人才网 以广西人才网为例,演示基础爬虫代码实现,逻辑: 配置Rule规则:设置allow的正则-->设置回调函数 通过回调函数获取想要的信息 具体的代码实现: import scrapy from scrapy.
rules = ( Rule(LinkExtractor(allow=r'WebPage/Company.*'),follow=True,callback='parse_company'), Rule(LinkExtractor(allow=r'WebPage/JobDetail.
通用爬虫(Broad Crawls)介绍 [传送:中文文档介绍],里面除了介绍还有很多配置选项。 通用爬虫一般有以下通用特性: 其爬取大量(一般来说是无限)的网站而不是特定的一些网站。
前言 网上关于mysq时间、python时间与时间戳等文章很多,翻来翻去找不到头绪,根据不同博客的写法,挑了几个来测试,这里记录一下。 况且,不以实际需求为前提的博文,就是瞎写,估计以后自己都看不懂。
背景 有时候爬虫爬过的url需要进行指纹核对,比如Scrapy就是进行指纹核对,如果是指纹重复则不再爬取。当然在入库的时候我还是需要做一次核对,否则如果爬虫有漏掉,进入数据库就不合适了。
前言 大部分情况下,通过request去请求网页,response.text返回来的都是正常值,但是有一些反爬虫比较严重的网站(比如知乎)就不会是这样。知乎会返回转义字符,例如: header = { "User-Agent":"Mozilla/5.
一、前言 需要在阿里云服务器部署Django-restframework框架,一开始不清楚情况,网上找了很多的文章和办法,东拼西凑也没有能够完全实现nginx和uwsgi的互通。
前言 这里尝试用docker做个简单的服务启动,只要能够正常启动scrapyd,并且外部可以对其进行访问即可。 至于项目打包和利用数据卷进行持久化到下一篇文章再写,到时候要将这几样东西结合起来运行一个完整的项目。
由于项目需求,要将繁体字转成简体字。网上一直没有头绪,有些说用opencc-python,有些则说用OpenCC。我也找了很久,最后才实现,这里记录一下。
一、背景 爬取数据过程中,会遇到一些特殊的字符入库出错的问题,比如二进制数据、比如特殊文字(类似QQ表情)等。 Siberian Husky fighting 这样的标题,后面就带有一个表情。
其实文件下载也差不多 前言 在日常爬取的过程中,图片下载还是挺多的,有时候可能纯粹是爬取图片,比如妹子图、动态图、表情包、封面图等,还有些时候是要进行验证码识别,所以需要用到图片下载功能。
常见报错信息 报错信息: Operand should contain 1 column(s) 意思是只能插入单行,不能插入多行数据 报错信息: data too long 意思是数据库字段长度不够 报错信息: [Failure instan...
一、背景 之前有记录过普通的scrapy模拟登录,这种方法可以满足了日常爬虫的登录需求。 但是技术一直在进步,近几年前后端分离的趋势越来越好,很多web都采用前后端分离的技术。
前言 分布式爬虫,总归是要上到服务器的。 这里先讲解如何在服务器上配置和部署scrapyd,主要的点还是在scrapyd和redis的conf配置文件上。
scrapy的去重原理 信号无处不在 【知其然且知其所以然,才能够更好的理解这个框架,而且在使用和改动的时候也能够想出更合理的方法。】 (开始测试前,到settings.py中注释掉下载中间件的设置,这里用jobbole爬虫来测试,所以之前写的调用chrome的两个方法init和spider_closed都要注释掉。
scrapy是不支持分布式的。分布式爬虫应该是在多台服务器(A B C服务器),他们不会重复交叉爬取(需要用到状态管理器)。 有主从之分的分布式结构图 重点 一、我的机器是Linux系统或者是MacOSX系统,不是Windows 二、区别,事实上,分布式爬虫有几个不同的需求,会导致结构不一样,我举个例子: 1、我需要多台机器同时爬取目标url并且同时从url中抽取数据,N台机器做一模一样的事,通过redis来调度、中转,也就是说它根本没有主机从机之分。
前言 爬虫写完了,很多时候本机部署就可以了,但是总有需要部署到服务器的需求,网上的文章也比较多,复制的也比较多,从下午3点钟摸索到晚上22点,这里记录一下。
前言 (备注一下,我的开发环境不是Linux就是MacOSX,Windows很多写法不是这样的) 在爬取数据的过程中,有时候需要用到定时、增量爬取。定时这里暂且不说,先说增量爬取。
登录的需求 有些数据,必须在登录之后才能查看,所以我们在爬取过程中就会产生模拟登录的需求,它有两个点: 1、未登录的情况下无法查看数据,或者直接弹出登录框提示你先登录 2、登录后登录状态的保持(通常可以理解为cookie的处理) 登录的逻辑 访问登录页面(部分网站会在登录页面设定token或标识来反爬虫,根据Network查看post数据来确认) 构造登录所需数据,并携带伪造的数据发送登录请求(如token或标识、User-Agent/HOST/Referer等数据,向登录地址POST数据。
之前的驱动版本和浏览器版本对不上,在deepin下吃了这个亏……,记录一下 chrome 安装selenium 打开终端,通过命令进入虚拟环境(当然,不用虚拟环境的可以不用这个命令): source activate pspiders (pspiders是虚拟环境名称)激活当前虚拟环境,然后在里面通过pip命令安装selenuim: pip install selenium 即可完成。
使用背景 有时候为了做测试,不想去数据库设置字段,设置musql字段实在是太麻烦了,这种情况下可以先把存储到json文件中,并观察数据的正确性,如果数据没问题了,再改成mysql存储即可。
一、需求 邮件发送功能,作为一个【通知】或者说【知晓】的方式,在实际应用中会经常使用的,试想一个场景: 你掌握着公司半数以上的爬虫,并且你每天都要监控它们(他们在服务器上),你作为一个爬虫技术从业者,你肯定会想(偷懒),因为不偷懒的工程师不会进步。
360截图20180712215548501.jpg 一、前言 在爬虫行当,每天都要面对目标反爬虫技术,我们想要拿到数据,就需要针对它们的反爬虫来制定绕过方法,比如它识别你的UserAgent,那你可能就需要伪造、它限制IP请求次数,你可能就需要限速或者改变ip、它用验证码来识别你是人是机,你就需要模拟人的操作并且正确填写它给你弹出的验证码等等。
我也是一名爬虫爱好者,深知在爬虫学习过程中的汗水和艰辛,之前的笔记、记录和绕坑手段都写在了博客中,但是未开放。 由于生活焦灼,我在爬虫的道路上渐行渐远,所以我想将我之前的记录和经验整理成有规律的、便于其他人理解、学习的文章记录且开放出来。