专栏首页一个番茄说Scrapy爬虫学习记录

Scrapy爬虫学习记录

昨天休息的时候偶然发现了一个的球鞋网站,上面有很多关于球鞋的资讯。于是,决定现学现卖,学习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的文件,这里面存的就是爬取下来的数据。

结尾

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 对swift面向协议的一点理解

    我的第一个正式使用swift开发的项目已经开始三周了,从一开始的不习惯到现在渐渐地有点感觉,让我感到它不仅仅是OC的简单代替,而在设计上其实还是有差别的。

    100000798482
  • 移动开发流水线建立以及自动化测试

    工业时代流水线的发明将生产任务的效率大大提升。同样,在软件开发过程中流水线的建立也能帮助我们更好的产出、提升效率。

    100000798482
  • 让你在WebView中用JS调Native Object

    之所做这个东西,源于之前项目中需要把一些页面用webView来呈现,但是web中需要调用native的方法,比如获取本地存的某些数据、调用摄像头等等,这里也就是...

    100000798482
  • 数据化时代,爬虫工程师才是真正“扛把子”

    就像在饭店里,你点了土豆并且能吃到,是因为有人帮你在土豆、萝卜、西红柿等中找到土豆,也有人把土豆拿到你桌上。在网络上,这两个动作都是由一位叫做爬虫的同学帮你实现...

    数据猿
  • Python|简单理解网络爬虫带你入门

    入门编程的小白们总是对计算机领域的各种“黑科技”感到好奇,其中“爬虫”对于小白来说算是一个高大上的技术,所以今天我将为大家揭开爬虫神秘的面纱,同时带领大家和我一...

    算法与编程之美
  • 一篇文章教会你理解Scrapy网络爬虫框架的工作原理和数据采集过程

    在这春节之际,Python进阶者祝福小伙伴们身体健康,工作顺利,心想事成,万事如意,阖家幸福欢乐,猪年诸事顺心顺利。

    Python进阶者
  • 一篇文章教会你理解Scrapy网络爬虫框架的工作原理和数据采集过程

    Scrapy是一个使用Python编程语言编写的爬虫框架,任何人都可以根据自己的需求进行修改,并且使用起来非常的方便。它可以应用在数据采集、数据挖掘、网络异常用...

    Python进阶者
  • 一个爬虫的故事:这是人干的事儿?

    说起来还要感谢HTTP协议,因为它,全世界的网站和浏览器才能够连接通信,而我也是借助HTTP协议,获取我想要的数据。

    轩辕之风
  • Python爬虫之robots协议案例

    意思就是 对于所有的user-agent: 不可以访问一下url Disallow: /?* Disallow: /pop/.html Disallo...

    desperate633
  • 如何改造 Scrapy 从而实现多网站大规模爬取?

    Scrapy 框架默认是用来开发定向爬虫的。一般情况下,在 spiders 文件夹下面的一个.py 文件对应了一个网站的爬取。

    崔庆才

扫码关注云+社区

领取腾讯云代金券