自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 互联网职位爬虫实现细节

互联网职位爬虫实现细节本文是对互联网职位爬虫程序的流程进行基本的描述,概述了爬虫程序的运行流程,相关表结构,网页解析规则,反爬策略的应对措施等。具体实现参考源码:https://github.com/laughoutloud61/jobSpider开发环境开发使用的框架:scrapy, scrapy-redis开发使用的数据库(服务器):Elasticsearch, redis实现目...

2019-06-11 22:53:54 540 1

原创 Selenium集成至Scrapy

在爬取网页时,经常会遇到动态网页,而scrapy是无法爬取动态网页,这时就需要借助其他爬虫技术,爬取动态网页的技术有很多,这里是将selenium框架集成到scrapy中。middlewares.pyclass SeleniumMiddleware(object): """ 使用selenium框架去请求那些动态页面 并将请求后的response返...

2019-03-06 12:28:12 368

原创 Scrapy反爬机制——ip代理池

简介在众多网站中通过检测某一ip的请求频率来判断是否为爬虫的请求是最有效率和准确的反爬策率之一,所以写爬虫程序时限制请求的频率尤其重要,但爬虫限速也无法幸免于难时,就需要通过其他的手段了。通过ip代理池随机更改每次请求时的ip可以非常有效的应对这种反爬策略。这里主要说一下不要钱的方法。不要钱的方法免费的ip代理在百度一搜一大堆,是的这种方法就是将免费的代理ip爬下来并存到数据库,自己维...

2019-03-03 14:36:14 563

原创 随机生成User-Agent——fake-useragent

安装pip install fake-useragent使用基于python3的使用fake-useragent在内部维护了很多的User-Agent,它提供了接口,只需要直接用就行。>>> from fake_useragent import UserAgent>>> ua=UserAgent()>>> ua.fi...

2019-03-03 13:59:30 1310

原创 Scrapy爬虫之CrawlSpider

简介CrawlSpider是Spider类的派生类。它定义了一些规则(rule),爬虫根据规则爬取跟进Link。简而言之,它会根据规则提取出页面的link,进一步请求提取出的link。这样的机制,使得全站爬虫变得更加方便,代码更加简洁。源码解析Rule(规则)Rule(link_extractor, callback=None, cb_kwargs=Non...

2019-02-28 11:37:42 211

原创 Scrapy爬虫实战(2)

此文章继上一篇《scrapy爬虫框架的介绍,实战》,通过爬虫实战,进一步理解,学习scrapy爬虫框架。本文就以知名的技术博客Jobbole为例,主要说一下和上一篇爬虫实战的有别之处。目标爬取Jobbole网站的所有文章,并对信息进行处理保存。分析打开网页http://blog.jobbole.com/all-posts/,分析网页内容。在文章列表页面我们需要抓取红框内的信...

2018-10-28 18:00:00 263

原创 Scrapy爬虫框架的介绍,实战

Scrapy介绍Scrapy是什么?Scrapy是一套基于Twisted的异步处理框架,是纯python实现的爬虫框架,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容或者各种图片。Scrapy框架Scrapy Engine:Scrapy引擎相当于一个中枢站,负责...

2018-10-05 22:10:57 6678 1

原创 Python 网络爬虫 迷你爬虫框架

本文章主要是实现一个最基础的网络爬虫框架,采用广度优先策略,即先爬取当级的所有网页,再对下级网页进行爬取。这样的文章可以说是一找一大堆,但我还是写了一遍,别人写的代码,那是别人的东西,如果不亲自实践,那你是永远都无法掌握,发出来也是想给初学者一个参考。还有救是每次写超过50行的代码我都会做流程图,虽然很不标准,但还是可以有一个基本思路。有流程图说明代码中有自己的思考,还是那句话,写程序,百分之80...

2018-09-29 16:11:35 2171 1

原创 Python 网络爬虫 网易云歌单筛选

本文章主要是做一个网络爬虫的实战练习。一是能够对一些爬虫框架有一个初步了解,二是可以练练手,可以做一些简单的网络爬虫项目,达到举一反三的效果,有助于以后深入理解学习更复杂的爬虫项目。所谓爬虫,就是依据一些规则,对网络上零散的信息进行索引抓取。像百度,google这类的搜索引擎就是具有一定规则的爬虫,当随网络的迅速发展,搜索引擎无法完全满足一些需求,这时就需要对需求定制相应的爬虫规则。...

2018-09-05 15:11:18 641

原创 Python 正则表达式

正则表达式是对字符串操作的逻辑公式,方便你对字符串的检索和替换。python的re模块为我们提供了正则表达式的相关功能,本文章主要介绍re模块的基本方法和操作。方法re.match(pattern,string,flags=0)尝试从参数string的起始位置匹配一个模式pattren,如果不是起始位置匹配成功的话,则就返回none。flags是标志位,用于控制正则表...

2018-08-30 10:52:02 184

原创 Python 实现生产者消费者模式

生产者消费者模型生产者消费者模式,即多条消费者线程和多条生产者线程共用同一缓冲区,线程之间协调工作。简单来说,生产者将信息发送至缓冲区,消费者将缓冲区的数据取出并进行处理。生产者消费者模式的实现流程图:生产者线程产生随机数(信息),将其放入队列,而消费者线程将队列中的数据取出,进行处理。代码main.pyimport producerimpor...

2018-08-19 19:31:12 4774 5

原创 Python 3.6.4 threading模块

常用方法 threading.Lock()返回一个lock对象,当多个线程对同一数据同时进行修改时,则可能出现结果的不确定性,为了保证数据的结果在我们预期内,则,需要对线程进行同步。lock对象则为我们提供acquire()和release()两个方法,对于那些在同一时间内只允许一个线程进行操作修改的数据,可将其放在这两个方法之间。代码(没有对数据加锁):import t...

2018-07-27 10:55:40 523

原创 Python 3.6.4 queue模块

常用方法 put(item[, block[, timeout]])向队列里添加数据。参数item:要放入队列的数据。block:可选参数,默认值为True。当值为True时,阻塞调用(当栈满一直无空间可用,阻塞调用,直到有栈有空间,或timeout秒后结束。timeout:阻塞超时,当timeout>0时,阻塞调用timeout后结束。 get(bloc...

2018-06-13 12:38:02 1782

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除