摘要:
小学时,体育检测。同班姑娘让我帮她拿着发卡,她去做仰卧起坐。我把发卡紧紧地握在手里,一秒钟都没有放开。她考完了,一句谢谢都没有,就和别人去玩了。第二次体育课,轮到我考试了,我让这个姑娘帮我拿着发卡,她没拒绝。考完以后我问她:“我的发卡呢?”她说:“丢了。”我问:“怎么丢了?”她说:“刚才你考试时,她 阅读全文
摘要:
众所周知目前使用selenium打开浏览器访问淘宝,会弹出登录页面,不管你是手动还是自动登录一律都是在滑块验证码时不通过,今天花了几个小时分析了一下,也只是对其整体有了个认识 总体上淘宝的反爬虫思路是:基于用户身份的ua算法,来识别浏览器是正常状态还是非正常状态。 ua:UA的中文翻译是用户代理,全 阅读全文
摘要:
客户端使用 发起请求 让我们从导入aiohttp模块开始: 好啦,我们来尝试获取一个web页面。比如我们来获取下GitHub的时间轴。 我们现在有了一个会话(session)对象,由ClientSession对象赋值而来,还有一个变量resp,它其实是ClientResponse对象。我们可以从这个 阅读全文
摘要:
前言 本文翻译自aiohttp官方文档,如有纰漏,欢迎指出。 aiohttp是一个为Python提供异步HTTP 客户端/服务端编程,基于asyncio(Python用于支持异步编程的标准库)的异步库。 核心功能: 同时支持客户端使用和服务端使用。 同时支持服务端WebSockets组件和客户端We 阅读全文
摘要:
Git使用教程 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 二:SVN和Git最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服 阅读全文
摘要:
redis分布式部署 1.scrapy框架是否可以自己实现分布式? - 不可以。原因有二。 其一:因为多台机器上部署的scrapy会各自拥有各自的调度器,这样就使得多台机器无法分配start_urls列表中的url。(多台机器无法共享同一个调度器) 其二:多台机器爬取到的数据无法通过同一个管道对数据 阅读全文
摘要:
引言: python由于GIL(全局锁)的存在,不能发挥多核的优势,其性能一直饱受诟病。然而在IO密集型的网络编程里,异步处理比同步处理能提升成百上千倍的效率,弥补了python性能方面的短板. asyncio是做什么的? 异步网络操作 并发 协程 >> python3.0时代,标准库里的异步网络模 阅读全文
摘要:
小思考:如果想要通过爬虫程序去爬取”糗百“全站数据新闻数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调parse方法)。 方法二:基于CrawlSpider的自动爬取进行实现(更加简洁和高效)。 一.简介 CrawlSpider其 阅读全文
摘要:
在通过scrapy框架进行某些网站数据爬取的时候,往往会碰到页面动态数据加载的情况发生,如果直接使用scrapy对其url发请求,是绝对获取不到那部分动态加载出来的数据值。但是通过观察我们会发现,通过浏览器进行url请求发送则会加载出对应的动态加载出的数据。那么如果我们想要在scrapy也获取动态加 阅读全文
摘要:
下载中间件 下载中间件(Downloader Middlewares) 位于scrapy引擎和下载器之间的一层组件。 作用: (1)引擎将请求传递给下载器过程中, 下载中间件可以对请求进行一系列处理。比如设置请求的 User-Agent,设置代理等 (2)在下载器完成将Response传递给引擎中, 阅读全文
摘要:
基于终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化操作; 执行输出指定格式进行存储:将爬取到的数据写入不同格式的文件中进行存储 基于管道的持久化存储 scrapy框架中已经为我们专门集成好 阅读全文