爬虫 Scrapy简单使用

Scrapy是用于抓取网站并提取结构化数据的应用程序框架。

本文将以一个简单的scrapy项目,爬取http://www.tianqi.com 上的北京的天气信息

本文仅为学习笔记,欢迎指出错误和交流

第一步 创建工程

scrapy startproject weather 

之后查看一下weather工程的结构

上面的文件结构就是scrapy工程的基本结构,其中:

  • scrapy.cfg: 项目的配置文件
  • weather/: 该项目的 python 模块。之后您将在此加入代码。
  • weather/items.py: 项目中的 item 文件。
  • weather/pipelines.py: 项目中的 pipelines 文件。
  • weather/settings.py: 项目的设置文件。
  • weather/spiders/: 放置 spider 代码的目录。

第二步 修改items.py

根据该网站上的内容

我们要爬取的内容是 天气,星期,温度,风速,显示天气的图片。

所以在items.py中这样写:

在这里没有太多的应用,只要使用 scrapy.Field() 即可。在网页中你抓取的数据被储存在类似字典的结构传递,而  上例的 weather=scrapy.Field()其实 就像当于对字典添加key。

以上代码就相当于得到了一个

item = {'weather':None,"week":None,"temperature":None,"wind":None,"imgurl":None}

第三步 在shell上打开网址,在这上面利用 css/xpath 搜索你所需要的内容,得到正确的选择步骤

scrapy shell "http://beijing.tianqi.com"

运行结果为(得到一个长长的东西,图片仅为一部分)

上面的 response 后为 200,所以成功打开网页

html 代码如图所

 使用css/xpath如下:

 通过以上步骤,完成了准备就可以开始写spider了。

第四步 

scrapy genspider beijngtianqiSpider beijing.tianqi.com   #scrapy genspider spider的名字  搜索域

之后写其内容

第五步

写pipelines.py

它的作用就是对抓取的数据进行处理,想怎样处理都可以,然后保存在文件中或者储存在数据库上

由于修改了pipelines.py,所以需要对setting.py进行修改:

假如修改一些其他设置也可以在此处:

如修改User-agent,

 

 

以上的内容就是对scrapy的初步应用,scrapy就像是填空题,填上对应的东西就可以完成爬虫

posted @ 2017-10-18 22:13  过眼成灰  阅读(272)  评论(0编辑  收藏  举报