前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Scrapy爬虫学习记录

Scrapy爬虫学习记录

作者头像
100000798482
发布2018-08-20 17:07:28
4530
发布2018-08-20 17:07:28
举报
文章被收录于专栏:一个番茄说

昨天休息的时候偶然发现了一个的球鞋网站,上面有很多关于球鞋的资讯。于是,决定现学现卖,学习scrapy把数据都给爬下来。

故事的开端应该交代我的工具:

硬件:15寸MBP 10.10.5系统

软件:Python, Scrapy

如果你是Mac,那么你的电脑上面应该已经装好了Python了,接下来你需要装Scrapy,这些都安装好了之后你就可以开始你的爬虫之旅了。

什么是Scrapy?

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。你可以在这里看到Scrapy的更多介绍。

Python中通用的包管理工具是pip,类似于Ruby的gem, node.js的npm之类的东西啦。安装好了pip之后,你只需要一句下面的命令就装好了Scrapy。

pip install Scrapy

开始爬虫

新建一个爬虫项目

scrapy startproject sneaker

目录结构如图

目录结构图

说下里面重要的几个文件

settings.py:从名字就可以看到它是一个配置文件,里面会写上你爬虫的一些配置。

sneaker_spider.py:爬虫,真正干活的东西

items.py:爬取下来的数据,相当于是一个model

pipelines.py:当Item在Spider中被收集之后,它将会被传递到Item Pipeline,一些组件会按照一定的顺序执行对Item的处理。

这里主要需要你来完成的是sneaker_spider.py,我先上一张截图

在这个spider里面有这样几个地方你需要关注,allowed_domains,start_urls,rules。

allowed_domains:爬虫只会爬取这个名单里域名下的数据

start_urls:从哪个地址开始爬取

rules:爬取规则。爬虫会根据这里的规则对页面中出现的链接进行解析,如果匹配正则表达式的话,爬虫会对这个链接继续爬取。

在这个类里面我只写了一个函数parse_item,爬虫爬取到数据之后会丢到这里来进行解析,你可以使用Xpath表达式来取得你想要的元素。

关于Xpath,网上有很多资料可以查到,要获取到一个元素的xpath,你可以使用浏览器提供的功能来获取到,当然这里的浏览器我不包括IE,哈哈。比如chrome,你打开Inspect Element之后,选择你的目标元素,然后右键选择copy  Xpath,接下来你可以在命令行执行下面的命令验证下:

$x('your xpath')

取到你想要的数据之后,用他们来初始化你的Model就可以了,这里就是我的SneakerItem。

接下来,我需要去pipelines.py对我的item进行处理,我把它存到了一个json文件里面。

pipelines.py

运行爬虫

接下来回到你项目的根目录,然后敲下scrapy crawl sneaker,接着你会看到你的命令行里滚过一大片数据,当他停下来的时候也就大功告成了。你会看到你的目录里多了一个items.json的文件,这里面存的就是爬取下来的数据。

结尾

这只是一个爬虫的很初级的一个阶段,需要学的还有很多。比如怎样绕过网站的反爬虫机制,怎样实现一个分布式的爬虫等等。如果你觉得这篇文章对你还有那么点用,你可以请我喝瓶可乐,小瓶儿的就可以。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015.09.16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是Scrapy?
  • 开始爬虫
  • 运行爬虫
  • 结尾
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档