杭州租房决策实践1Scrapy框架简
本次推送干货满满!同学们准备好了吗?
我们用scrapy框架对租房信息进行爬取,再进行数据分析,得出租房决策,数据分析入门挑战,areyouready?
Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。
Scrapy项目结构scrapy.cfg:项目的配置文件
lianjia/:该项目的python模块。之后您将在此加入代码。
lianjia/items.py:项目中的item文件.
lianjia/pipelines.py:项目中的pipelines文件.
lianjia/settings.py:项目的设置文件.
lianjia/spiders/:放置spider代码的目录.
下面主要说一下几个比较重要的:
item.py
Item是保存爬取到的数据的容器。比如我下面将要爬取的链家网租房信息的地点、平米数、价格,我会在item.py文件中定义相应的字段。
fromscrapyimportItem,Field
classLianjiaItem(Item):
#definethefieldsforyouritemherelike:
#name=scrapy.Field()
place=Field()#爬取链家租房信息的-地点
size=Field()#爬取链家租房信息的-房屋平米数
price=Field()#爬取链家租房信息的-价格
spider.py
此文件是我们在spiders文件下自己创建的,用来写爬虫的代码的,非常重要。我们需要创建一个spider,必须继承scrapy.Spider,并有下面三个属性:name:用于区别Spider。该名字必须是唯一的,您不可以为不同的Spider设定相同的名字。
start_urls:包含了Spider在启动时进行爬取的url列表。因此,第一个被获取到的页面将是其中之一。后续的URL则从初始的URL获取到的数据中提取。
parse()是spider的一个方法。被调用时,每个初始URL完成下载后生成的Response对象将会作为唯一的参数传递给该函数。该方法负责解析返回的数据(responsedata),提取数据(生成item)以及生成需要进一步处理的URL的Request对象。
pipelines.py主要作用是为爬取下的数据的做处理。比如txt或者存入数据库的操作。
settings.py主要是对爬虫项目的设置
下一篇文章我们将进行爬虫实战,不要错过让编程成为一种习惯
|