摘要: Scrapy Redis分布式爬虫组件 Scrapy是一个框架,他本身是不支持分布式的。如果我们想要做分布式的爬虫,就需要借助一个组件叫做 ,这个组件正是利用了Redis可以分布式的功能,集成到 框架中,使得爬虫可以进行分布式。可以充分的利用资源(多个ip、更多带宽、同步爬取)来提高爬虫的爬行效率。 阅读全文
posted @ 2019-04-30 21:29 渣爷 阅读(172) 评论(0) 推荐(0) 编辑
摘要: redis教程 概述 redis是一种支持分布式的 数据库,他的数据库是保存在内存中,同时 可以定时把内在数据同步到磁盘,即可以将数据持久化。并且他比 支持更多的数据结构( ,`list列表[队列和栈] set[集合] sorted set[有序集合] hash(hash表)`)。 相关参考文档:h 阅读全文
posted @ 2019-04-30 21:27 渣爷 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 第一章 一、网络请求(1)——爬虫前奏 一、网络请求(2)——urllib库 一、网络请求(3)——requests库 第二章 二、数据提取(1)——xpath语法与lxml库 二、数据提取(2)——BeautifulSoup4库 二、数据提取(3)——正则表达式和re模块 第三章 三、数据存取(1 阅读全文
posted @ 2019-04-30 21:25 渣爷 阅读(694) 评论(0) 推荐(0) 编辑
摘要: 小程序社区爬虫 数据保存到json文件中。使用 CrawlSpider 模拟登录豆瓣网爬虫 发送 post 请求模拟登录 图片下载爬虫 汽车之家宝马5系爬虫 BOSS直聘爬虫 BOSS直聘有很高的反爬虫机制,只要用同 个IP访问多个职位列表页,就会被封掉IP。采用代理ip的方式可解决问题。 简书网站 阅读全文
posted @ 2019-04-30 21:19 渣爷 阅读(134) 评论(0) 推荐(0) 编辑
摘要: Downloader Middlewares(下载器中间件) 下载器中间件是引擎和下载器之间通信的中间件。在这个中间件中我们可以设置代理、更换请求头等来达到反的爬虫的目的。更写下载器中间件,可以在下载器中实现两个方法。一个 ,这个方法是在请求发送之前会执行,还有一个是 ,这个方法是数据下载到引擎之间 阅读全文
posted @ 2019-04-30 21:17 渣爷 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 下载文件和图片 Scrapy为下载item中包含的文件(比如在爬取到产品时,同时也想保存对应的图片)提供了一个可重用的 。这些 有些共同的方法和结构(我们称之为 )。一般来说会使用 或者 。 为什么要选择使用 scrapy 内置的下载文件的方法 1. 避免重新下载最近已经下载过的数据。 2. 可以方 阅读全文
posted @ 2019-04-30 21:15 渣爷 阅读(590) 评论(0) 推荐(0) 编辑
摘要: Request和Response对象 Request对象 1 class Request(object_ref): 2 3 def __init__(self, url, callback=None, method='GET', headers=None, body=None, 4 cookies= 阅读全文
posted @ 2019-04-30 21:13 渣爷 阅读(188) 评论(0) 推荐(0) 编辑
摘要: Scrapy Shell 我们想要在爬虫中使用xpath、beautifulsoup、正则表达式、css选择器等来提取想要的数据。但是因为 是一个比较重的框架。每次运行起来都要等待一段时间。因此要去验证我们写的提取规则是否正确,是一个比较麻烦的事情。因此 提供了一个shell,用来方便的测试规则。当 阅读全文
posted @ 2019-04-30 21:05 渣爷 阅读(171) 评论(0) 推荐(0) 编辑
摘要: CrawlSpider 在上一个糗事百科的爬虫案例中。我们是自己在解析完整个页面后获取下一页的url,然后重新发送一个请求。有时候我们想要这样做,只要满足某个条件的url,都给我进行爬取。那么这时候我们就可以通过 来帮我们完成了。 继承自 ,只不过是在之前的基础之上增加了新的功能,可以定义爬取的ur 阅读全文
posted @ 2019-04-30 21:04 渣爷 阅读(211) 评论(0) 推荐(0) 编辑
摘要: Scrapy快速入门 安装和文档: 1. 安装:通过 即可安装。 2. Scrapy官方文档: 3. Scrapy中文文档: 注意: 1. 在 上安装 之前,需要先安装以下依赖: ,然后再通过 安装。 2. 如果在 系统下,提示这个错误 ,那么使用以下命令可以解决: 。 快速入门: 创建项目: 要使 阅读全文
posted @ 2019-04-30 21:02 渣爷 阅读(179) 评论(0) 推荐(0) 编辑
摘要: Scrapy框架架构 Scrapy框架介绍: 写一个爬虫,需要做很多的事情。比如:发送网络请求、数据解析、数据存储、反反爬虫机制(更换ip代理、设置请求头等)、异步请求等。这些工作如果每次都要自己从零开始写的话,比较浪费时间。因此 把一些基础的东西封装好了,在他上面写爬虫可以变的更加的高效(爬取效率 阅读全文
posted @ 2019-04-30 20:59 渣爷 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 图形验证码识别技术: 阻碍我们爬虫的。有时候正是在登录或者请求一些数据时候的图形验证码。因此这里我们讲解一种能将图片翻译成文字的技术。将图片翻译成文字一般被成为光学文字识别(Optical Character Recognition),简写为 。实现 的库不是很多,特别是开源的。因为这块存在一定的技 阅读全文
posted @ 2019-04-30 20:56 渣爷 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 动态网页数据抓取 什么是AJAX: AJAX(Asynchronouse JavaScript And XML)异步JavaScript和XML。过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用A 阅读全文
posted @ 2019-04-30 20:43 渣爷 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 多线程爬虫 有些时候,比如下载图片,因为下载图片是一个耗时的操作。如果采用之前那种同步的方式下载。那效率肯会特别慢。这时候我们就可以考虑使用多线程的方式来下载图片。 多线程介绍: 多线程是为了同步完成多项任务,通过提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。 最简 阅读全文
posted @ 2019-04-30 20:37 渣爷 阅读(121) 评论(0) 推荐(0) 编辑
摘要: MongoDB数据库操作 MongoDB是一个基于分布式文件存储的NoSQL 数据库。在处理海理数据的时候会比 MySQL 更有优势。爬虫如果上了一个量级,可能就会比较推荐使用 MongoDB,当然没有上量的数据也完全可以使用 MongoDB 来存储数据。因此学会使用 MongoDB 也是爬虫开发工 阅读全文
posted @ 2019-04-30 20:28 渣爷 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 安装mysql: 1. 在官网: 2. 如果提示没有 框架。那么就在提示框中找到下载链接,下载一个就可以了。 3. 如果提示没有 ,那么百度或者谷歌这个软件安装即可。 navicat: navicat是一个操作mysql数据库非常方便的软件。使用他操作数据库,就跟使用excel操作数据是一样的。 安 阅读全文
posted @ 2019-04-30 20:26 渣爷 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 读取csv文件: 这样操作,以后获取数据的时候,就要通过下表来获取数据。如果想要在获取数据的时候通过标题来获取。那么可以使用 。示例代码如下: 写入数据到csv文件: 写入数据到csv文件,需要创建一个 对象,主要用到两个方法。一个是 ,这个是写入一行。一个是 ,这个是写入多行。示例代码如下: 也可 阅读全文
posted @ 2019-04-30 20:25 渣爷 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 什么是json JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语 阅读全文
posted @ 2019-04-30 20:22 渣爷 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 什么是正则表达式: 通俗理解:按照一定的规则,从某个字符串中匹配出想要的数据。这个规则就是正则表达式。 标准答案: 一个段子: 世界是分为两种人,一种是懂正则表达式的,一种是不懂正则表达式的。 正则表达式常用匹配规则: 匹配某个字符串: 以上便可以在 中,匹配出 。 点(.)匹配任意的字符: 但是点 阅读全文
posted @ 2019-04-30 20:12 渣爷 阅读(135) 评论(0) 推荐(0) 编辑
摘要: BeautifulSoup4库 和lxml一样,BeautifulSoup也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML数据。 lxml只会局部遍历,而BeautifulSoup是基于HTML DOM的,会载入整个目标,解析整个DOM树,因此时间和内存开销都会大很多 阅读全文
posted @ 2019-04-30 19:07 渣爷 阅读(206) 评论(0) 推荐(0) 编辑