之前用过selenium和request爬取数据,但是感觉速度慢,然后看了下scrapy教程,准备用这个框架爬取试一下。
1、目的:通过爬取成都链家的二手房信息,主要包含小区名,小区周边环境,小区楼层以及价格等信息。并且把这些信息写入mysql。
2、环境:scrapy1.5.1 +python3.6
3、创建项目:创建scrapy项目,在项目路径执行命令:scrapy startproject LianJiaScrapy
4、项目路径:(其中run.py新加的,run.py是在eclipse里面启动scrapy项目,方便调试的)
这些文件分别是:
scrapy.cfg:项目的配置文件
LianJiaScrapy:该项目的python模块。之后您将在此加入代码。
LianJiaScrapy/items.py:项目中的item文件,设置对应的参数名,把抓取的数据存到对应的字段里面。(类似字典来存数据,然后可提供给后面的pipelines.py处理数据)
LianJiaScrapy/pipelines.py:项目中的pipelines文件,抓取后的数据通过这个文件进行处理。(比如我把数据写到数据库里面就是在这里操作的)
LianJiaScrapy/spiders/:放置spider代码的目录。(数据抓取的过程,并且把抓取的数据和items的数据一一对应)
5、创建爬虫的主文件:cmd进入到主目录,输入命令:scrapy genspider lianjia_spider,查看spiders目录下,新建了一个lianjia_spider.py
6、items.py编写:
# -*- coding: utf-8 -*-
# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.html
from scrapy import Field, Item
class ScrapylianjiaItem(Item):
'''
houseName:小区楼盘
description:房子描述
floor:此条信息的关注度和发布时间
positionIcon:房子所属区
followInfo:楼层信息
subway:是否临近地铁
taxfree:是否有税
haskey:是否随时看房
totalPrice:总价
unitPrice:单价
'''
houseName = Field()
description = Field()
floor = Field()
positionIcon = Field()
followInfo = Field()
subway = Field()
taxfree = Field()
haskey = Field()
totalPrice = Field()
unitPrice = Field()
7、爬虫文件lianjia_spider.py编写
# -*- coding: utf-8 -*-
&#