所在的位置: 程序员 >> 职业现状 >> 51CTO技术栈

51CTO技术栈

双十一就要来了,在举国一片“买买买”的呼声中,单身汪的咆哮声也愈发凄厉了。

作为一个Python程序员,要如何找到小姐姐,避开暴击 ,在智中取胜呢?于是就有了以下的对话:

so~今天我们的目标是,爬社区的小姐姐~而且,我们又要用到新的姿势(雾)了~scrapy爬虫框架~

本文主要讲scrapy框架的原理和使用,建议至少在理解掌握Python爬虫原理后再使用框架(不要问我为什么,我哭给你看)。

scrapy原理

在写过几个爬虫程序之后,我们就会知道,利用爬虫获取数据大概的步骤:

请求网页。

获取网页。

匹配信息。

下载数据。

数据清洗。

存入数据库。

scrapy是一个很有名的爬虫框架,可以很方便的进行网页信息爬取。那么scrapy到底是如何工作的呢?之前在网上看了不少scrapy入门的教程,大多数入门教程都配有这张图。

也不知道是这张图实在太经典了,还是程序员们都懒得画图,我 次看到这个图的时候,心情是这样的。

经过了一番深入的理解,大概知道这幅图的意思,让我来举个栗子(是的,我又要举奇怪的栗子了):

scrapy原理图之我要吃好吃的

当我们想吃东西的时候,我们会出门,走到街上,寻找一家想吃的店,然后点餐,服务员再通知厨房去做, 菜到餐桌上,或者被打包带走。这就是爬虫程序在做的事,它要将所有获取数据需要进行的操作,都写好。

而scrapy就像一个点餐APP一般的存在,在订餐列表(spiders)选取自己目标餐厅里想吃的菜(items),在收货(pipeline)处写上自己的收货地址(存储方式)。

点餐系统(scrapyengine)会根据订餐情况要求商铺(Internet)的厨房(download)将菜做好,由于会产生多个外卖取货订单(request),系统会根据派单(schedule)分配外卖小哥从厨房取货(request)和送货(response)。说着说着我都饿了。。。。

什么意思呢?在使用scrapy时,我们只需要设置spiders(想要爬取的内容),pipeline(数据的清洗,数据的存储方式),还有一个middlewares,是各功能间对接时的一些设置,就可以不用操心其他的过程,一切交给scrapy模块来完成。

创建scrapy工程

安装scrapy之后,创建一个新项目:

$scrapystartprojectzhihuxjj

我用的是pycharm编译器,在spiders文件下创建zhihuxjj.py。

在zhihuxjj.py这个文件中,我们要编写我们的爬取规则。

爬取规则制定(spider)

创建好了项目,让我们来看一下我们要吃的店和菜…哦不,要爬的网站和数据。

我选用了知乎作为爬取平台,知乎是没有用户从1到n的序列id的,每个人可以设置自己的个人主页id,且为 。

所以采选了一枚种子用户,爬取他的







































北京白癜风诚信医院
北京哪家看白癜风比较好



转载请注明:http://www.xxcyfilter.com/zyxz/8691.html