07 2017 档案
摘要:站在圈外看待小米公司发展史 想起多少年前甚至还是诺基亚的时代的时候,我用的第一部手机还是诺基亚5310,至今还能回想起拿到手机的喜悦感。随着后来苹果的发布,安卓的盛行,直到小米的出现,小米当时也成“火爆预约抢购”的代名词,多少人当年守在电脑前鼠标都差点点坏了也没有抢到一部小米手机。而现在我们看待小米
阅读全文
摘要:在上一篇文章中主要写了关于爬虫过程的分析,下面是代码的实现,完整代码在:https://github.com/pythonsite/spider items中的代码主要是我们要爬取的字段的定义 这些字段的是在用户详细信息里找到的,如下图所示,这里一共有58个字段,可以详细研究每个字段代表的意思: 关
阅读全文
摘要:爬取的思路 首先我们应该找到一个账号,这个账号被关注的人和关注的人都相对比较多的,就是下图中金字塔顶端的人,然后通过爬取这个账号的信息后,再爬取他关注的人和被关注的人的账号信息,然后爬取被关注人的账号信息和被关注信息的关注列表,爬取这些用户的信息,通过这种递归的方式从而爬取整个知乎的所有的账户信息。
阅读全文
摘要:关于cookie和session估计很多程序员面试的时候都会被问到,这两个概念在写web以及爬虫中都会涉及,并且两者可能很多人直接回答也不好说的特别清楚,所以整理这样一篇文章,也帮助自己加深理解 什么是Cookie 其实简单的说就是当用户通过http协议访问一个服务器的时候,这个服务器会将一些Nam
阅读全文
摘要:这篇文章中写了常用的下载中间件的用法和例子。Downloader Middleware处理的过程主要在调度器发送requests请求的时候以及网页将response结果返回给spiders的时候,所以从这里我们可以知道下载中间件是介于Scrapy的request/response处理的钩子,用于修改
阅读全文
摘要:当Item 在Spider中被收集之后,就会被传递到Item Pipeline中进行处理 每个item pipeline组件是实现了简单的方法的python类,负责接收到item并通过它执行一些行为,同时也决定此Item是否继续通过pipeline,或者被丢弃而不再进行处理 item pipelin
阅读全文
摘要:Spider类定义了如何爬去某个网站,包括爬取的动作以及如何从网页内容中提取结构化的数据,总的来说spider就是定义爬取的动作以及分析某个网页 工作流程分析 我们以通过简单的分析源码来理解我通常在写spiders下写爬虫的时候,我们并没有写start_requests来处理start_urls中的
阅读全文
摘要:Scrapy提取数据有自己的一套机制,被称作选择器(selectors),通过特定的Xpath或者CSS表达式来选择HTML文件的某个部分Xpath是专门在XML文件中选择节点的语言,也可以用在HTML上。CSS是一门将HTML文档样式化语言,选择器由它定义,并与特定的HTML元素的样式相关联。 X
阅读全文
摘要:这篇文章主要是对的scrapy命令行使用的一个介绍 创建爬虫项目 scrapy startproject 项目名例子如下: 这个时候爬虫的目录结构就已经创建完成了,目录结构如下: 接着我们按照提示可以生成一个spider,这里以百度作为例子,生成spider的命令格式为;scrapy genspid
阅读全文
摘要:这一篇文章主要是为了对scrapy框架的工作流程以及各个组件功能的介绍 Scrapy目前已经可以很好的在python3上运行Scrapy使用了Twisted作为框架,Twisted有些特殊的地方是它是事件驱动的,并且比较适合异步的代码。对于会阻塞线程的操作包含访问文件、数据库或者Web、产生新的进程
阅读全文
摘要:这里是通过爬取伯乐在线的全部文章为例子,让自己先对scrapy进行一个整理的理解 该例子中的详细代码会放到我的github地址:https://github.com/pythonsite/spider/tree/master/jobboleSpider 注:这个文章并不会对详细的用法进行讲解,是为了
阅读全文
摘要:这里我们通过请求网页例子来一步步理解爬虫性能 当我们有一个列表存放了一些url需要我们获取相关数据,我们首先想到的是循环 简单的循环串行 这一种方法相对来说是最慢的,因为一个一个循环,耗时是最长的,是所有的时间总和代码如下: 通过线程池 通过线程池的方式访问,这样整体的耗时是所有连接里耗时最久的那个
阅读全文