随笔分类 -  爬虫-scrapy

摘要:#### ### 这个爬虫中间件,的process_start_request方法,可以监控到有多少个爬虫启动,启动了多少个url, 因为所有的爬虫,都会通过这个中间件的, 我们可以在这个上面做文章,来监控这个爬虫的情况, ### 这两个是控制输入和输出的, 输出的信息,可以把每一个页面,的每一个记 阅读全文
posted @ 2021-09-12 01:09 技术改变命运Andy 阅读(51) 评论(0) 推荐(0) 编辑
摘要:### 这是使用的urllib, #### 使用requests下载图片 import requests # 这是一个图片的url url = 'http://yun.itheima.com/Upload/Images/20170614/594106ee6ace5.jpg' response = r 阅读全文
posted @ 2021-09-11 22:39 技术改变命运Andy 阅读(114) 评论(0) 推荐(0) 编辑
摘要:#### 进入虚拟环境,里面安装了scrapy, 进入命令行,输入命令,scrapy shell 'https://scrapy.org' --nolog,执行后,会自动将指定 url 的网页下载下来, 注意一点:不要在你的爬虫项目文件夹下面执行这个命令,会报错的, 会弹出交互页面, 然后你就可以使 阅读全文
posted @ 2021-09-11 03:12 技术改变命运Andy 阅读(106) 评论(0) 推荐(0) 编辑
摘要:#### 在爬虫里面,使用yield,就是协程异步的体现, 所以我干保证,面试的时候一定会涉及到线程,涉及到协程,的使用,这个必须要深刻的理解, #### 必须要搞定这个线程协程,然后还有就是这个框架,然后你才能自定义,才能扩展这个框架, ##### 阅读全文
posted @ 2021-09-11 02:40 技术改变命运Andy 阅读(49) 评论(0) 推荐(0) 编辑
摘要:1,要想达到日爬取千万,这种大规模的爬取,使用分布式是必须的, 关于可以使用RabbitMQ消息队列代替Redis。 关于celery的使用, 2,关于资源问题,数据去重问题,使用布隆过滤去重,几乎也是达成了共识, 3,另外就是代码健壮性要强!高可用、高扩展、高性能你可以都不知道,也没多大关系。但是 阅读全文
posted @ 2021-09-09 02:17 技术改变命运Andy 阅读(205) 评论(0) 推荐(0) 编辑
摘要:爬虫 DATA/URL 去重 舆情业务必须紧盯网站是否有新的内容发布,要求是越快越好,但由于各项软硬件限制,通常会要求在 30 分钟内或者 15 分钟内监听到新内容。要实现对目标网站内容变化的监听,那么我们可以选择的比较好的方式就是轮询。不停地访问网页,并且判断是否有“新内容”出现,如果有的话就执行 阅读全文
posted @ 2021-09-09 01:42 技术改变命运Andy 阅读(137) 评论(0) 推荐(0) 编辑
摘要:###### 可以通过以下几种方式: 1.开启多个命令行,分别执行scrapy cralw xxxx 2.编写一个脚本,写入以下代码,执行工程下的所有爬虫: from scrapy.utils.project import get_project_settings from scrapy.crawl 阅读全文
posted @ 2021-09-09 00:01 技术改变命运Andy 阅读(567) 评论(0) 推荐(0) 编辑
摘要:#### 使用scrapy-redis的意义 1,scrapy-redis源码在github上有,开源的 2,scrapy-redis是在scrapy基础上实现的,增加了功能, 第一个,requests去重, 第二个,爬虫持久化, 第三个,还有轻松实现分布式,scrapy-redis搞明白,这个是如 阅读全文
posted @ 2021-07-27 07:20 技术改变命运Andy 阅读(856) 评论(0) 推荐(0) 编辑
摘要:#### 下载中间件的用途 这个下载中间件,有两个用途,一个处理请求,一个处理响应 ### 下载中间件 添加随机UA, #### 在setting里面设置一个随机ua的列表, #### ### 注意一定要实现这个process_request方法,这个是在请求之前加一些处理, 如果是实现的proce 阅读全文
posted @ 2021-07-25 21:34 技术改变命运Andy 阅读(131) 评论(0) 推荐(0) 编辑
摘要:#### scrapy模拟登陆1 使用cookie登陆 有些网站的cookie过期时间很长,比如一些小网站, 我们可以保存这个cookie,然后携带cookie登陆, 如果操作: 思考,这个start_urls是谁发起的? 这个是在爬虫继承的父类,spider里面,有一个start_requests 阅读全文
posted @ 2021-07-25 21:12 技术改变命运Andy 阅读(583) 评论(0) 推荐(0) 编辑
摘要:### 在Scrapy基础——Spider中。Spider基本上能做很多事情了,但是如果你想爬取一个网站的全站的话,你可能需要一个更强大的武器。CrawlSpider基于Spider,但是可以说是为全站爬取而生。 ## 生成一个crawlspider的爬虫: 命令:scrapy genspider 阅读全文
posted @ 2021-07-25 20:52 技术改变命运Andy 阅读(604) 评论(0) 推荐(0) 编辑
摘要:### 爬虫解决翻页问题 import scrapy class Spider1Spider(scrapy.Spider): name = 'spider1' allowed_domains = ['17k.com'] start_urls = ['https://www.17k.com/all/b 阅读全文
posted @ 2021-07-25 19:18 技术改变命运Andy 阅读(107) 评论(0) 推荐(0) 编辑
摘要:#### 安装scrapy 安装:pip install scrapy #### 创建scrapy项目 进入你要创建项目的目录下来,在命令窗口,输入命令:scrapy startproject scrapy_demo1 ### 生成一个爬虫, 进入爬虫项目的根目录,然后执行命令,scrapy gen 阅读全文
posted @ 2021-07-24 17:14 技术改变命运Andy 阅读(201) 评论(0) 推荐(0) 编辑
摘要:#### 目录 面试的时候问你基础概念和工作流程,看看你对这个框架是否熟悉 ##### 其实使用requests+selenium就可以解决90%的爬虫需求了,但是为什么还需要学习scrapy? scrapy是为了让爬虫更快,更强,解决抓取效率慢,解决爬虫的效率和速度的问题, ##### 框架和模块 阅读全文
posted @ 2021-07-24 14:24 技术改变命运Andy 阅读(55) 评论(0) 推荐(0) 编辑
摘要:##### 分布式爬虫 一、分布式爬虫架构 爬虫Server,负责管理所有URL(即,爬虫客户端的下载任务)的状态,通过我们前面介绍的UrlPool(网址池)进行管理。 Server提供接口给Clients,以便它们获取URL和提交URL。 爬虫Client,负责URL的下载、网页的解析以及存储等各 阅读全文
posted @ 2021-05-09 23:04 技术改变命运Andy 阅读(183) 评论(0) 推荐(0) 编辑
摘要:### 异步io io就是input,output,输入和输出, 读写硬盘,读写数据库的时候,就是输入输出,下载网页存入数据库的时候,就是io操作 以写数据为例,如果是阻塞型写入操作,进程要一直等待写结束返回才会进行后面的操作,但是如果你使用异步I/O,你可以将写请求发送到队列,然后就可以去做其他事 阅读全文
posted @ 2021-05-07 00:51 技术改变命运Andy 阅读(85) 评论(0) 推荐(0) 编辑
摘要:#### 网址池的实现 对于比较大型的爬虫来说,URL管理的管理是个核心问题,管理不好,就可能重复下载,也可能遗漏下载。这里,我们设计一个URL Pool来管理URL。这个URL Pool就是一个生产者-消费者模式: 和scrapy的设计是一样的, 1,爬虫从网址池那url去下载解析, 2,爬虫解析 阅读全文
posted @ 2021-05-07 00:01 技术改变命运Andy 阅读(373) 评论(0) 推荐(0) 编辑
摘要:### 关于自己实现爬虫框架,最终的目的是,让大家之后这些代码的逻辑是什么,为什么要这么写??自己真的能应用到今后的工作中, 这些代码做了很好的封装,可以作为爬虫的基本模块使用,在后面写爬虫的时候需要熟练使用, #### 爬虫的步骤 #### 爬虫步骤就是统一的, 就是打开浏览器,打开网址,打开F1 阅读全文
posted @ 2021-05-06 18:39 技术改变命运Andy 阅读(60) 评论(0) 推荐(0) 编辑