Scrapy入门教程
本文参考Scrapy Tutorial里面的文档,翻译出来加上自己的理解,供大家学习。
在本文中,我们将学会如何使用Scrapy建立一个爬虫程序,并爬取指定网站上的内容,这一切在Scrapy框架内实现将是很简单轻松的事情。
本教程主要内容包括一下四步:
1. 创建一个新的Scrapy Project
2. 定义你需要从网页中提取的元素Item
3. 实现一个Spider类,通过接口完成爬取URL和提取Item的功能
4. 实现一个Item PipeLine类,完成Item的存储功能
新建工程
首先,为我们的爬虫新建一个工程,首先进入一个目录(任意一个我们用来保存代码的目录),执行:
1 |
|
最后的Domz就是项目名称。这个命令会在当前目录下创建一个新目录Domz,结构如下:
1 2 3 4 5 6 7 8 9 |
|
scrapy.cfg: 项目配置文件
items.py: 需要提取的数据结构定义文件
pipelines.py: 管道定义,用来对items里面提取的数据做进一步处理,如保存等
settings.py: 爬虫配置文件
spiders: 放置spider的目录
定义Item
在items.py里面定义我们要抓取的数据:
1 2 3 4 5 6 |
|
这里我们需要获取dmoz页面上的标题,链接,描述,所以定义一个对应的items结构,不像Django里面models的定义有那么多种类的Field,这里只有一种就叫Field(),再复杂就是Field可以接受一个default值。
实现Spider
spider只是一个继承字scrapy.spider.BaseSpider的Python类,有三个必需的定义的成员
name: 名字,这个spider的标识
start_urls: 一个url列表,spider从这些网页开始抓取
parse(): 一个方法,当start_urls里面的网页抓取下来之后需要调用这个方法解析网页内容,同时需要返回下一个需要抓取的网页,或者返回items列表
所以在spiders目录下新建一个spider,dmoz_spider.py:
1 2 3 4 5 6 7 8 9 10 |
|
提取Item
提取数据到Items里面,主要用到XPath提取网页数据:
scrapy有提供两个XPath选择器,HtmlXPathSelector和XmlXPathSelector,一个用于HTML,一个用于XML,XPath选择器有三个方法
select(xpath): 返回一个相对于当前选中节点的选择器列表(一个XPath可能选到多个节点)
extract(): 返回选择器(列表)对应的节点的字符串(列表)
re(regex): 返回正则表达式匹配的字符串(分组匹配)列表
一种很好的方法是在Shell里面对XPath进行测试:
1 |
|
现在修改parse()方法看看如何提取数据到items里面去:
1 2 3 4 5 6 7 8 9 10 11 |
|
实现PipeLine
PipeLine用来对Spider返回的Item列表进行保存操作,可以写入到文件、或者数据库等。
PipeLine只有一个需要实现的方法:process_item,例如我们将Item保存到一个文件中:
1 2 3 4 5 |
|
到现在,我们就完成了一个基本的爬虫的实现,可以输入下面的命令来启动这个Spider:
1 |
|
原创文章,转载请注明:转载自CodeLogic[http://www.icodelogic.com]
本文链接地址: http://www.icodelogic.com/?p=441
Scrapy入门教程相关推荐
- python scrapy 简单教程_python之scrapy入门教程
看这篇文章的人,我假设你们都已经学会了python(派森),然后下面的知识都是python的扩展(框架). 在这篇入门教程中,我们假定你已经安装了Scrapy.如果你还没有安装,那么请参考安装指南. ...
- Scrapy入门教程(2)——保存数据
爬取股票名称.每股利润和净利润 完整项目已上传至github 链接:https://github.com/yinhaox/02_scrapy 数据爬取 可以接着之间的项目改,也可以重建一个 图一网页截 ...
- Scrapy入门教程实例
Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. scrapy的整体框架如下所示: Scrapy主要 ...
- Scrapy爬取P2P新闻入门教程
文章目录 安装Scrapy 建立Scrapy项目 修改配置文件 定义Item 编写Spider类 运行爬虫 参考链接 本博客不介绍具体细节,详细入门教程可以看最下方的参考链接,本博客只介绍如何实现一个 ...
- Scrapy爬虫入门教程五 Selectors(选择器)
Scrapy爬虫入门教程一 安装和基本使用 Scrapy爬虫入门教程二 官方提供Demo Scrapy爬虫入门教程三 命令行工具介绍和示例 Scrapy爬虫入门教程四 Spider(爬虫) Scrap ...
- Python Scrapy中文教程,Scrapy框架快速入门!
谈起爬虫必然要提起 Scrapy 框架,因为它能够帮助提升爬虫的效率,从而更好地实现爬虫. Scrapy 是一个为了抓取网页数据.提取结构性数据而编写的应用框架,该框架是封装的,包含 request ...
- python scrapy教程实例_爬虫框架Scrapy的第一个爬虫示例入门教程
原标题:爬虫框架Scrapy的第一个爬虫示例入门教程 我们使用dmoz.org这个网站来作为小抓抓一展身手的对象. 首先先要回答一个问题. 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建 ...
- python爬虫框架教程_Python爬虫实战(十二):爬虫框架Scrapy的第一个爬虫示例入门教程...
本文主要向大家介绍了Python爬虫实战的爬虫框架Scrapy的第一个爬虫示例入门教程,通过具体的内容向大家展现,希望对大家学习Python爬虫实战有所帮助. 我们使用dmoz.org这个网站来作为小 ...
- python scrapy框架爬虫_Scrapy爬虫框架教程(一)-- Scrapy入门
前言 转行做python程序员已经有三个月了,这三个月用Scrapy爬虫框架写了将近两百个爬虫,不能说精通了Scrapy,但是已经对Scrapy有了一定的熟悉.准备写一个系列的Scrapy爬虫教程,一 ...
最新文章
- java ArrayList 清空元素时迭代器造成的错误
- 【Android】3.12 兴趣点( POI)搜索功能
- 图像处理(二十一)基于数据驱动的人脸卡通动画生成-Siggraph Asia 2014
- python的引用计数分析(二)
- maven中如何将所有引用的jar包打包到一个jar中
- github结合TortoiseGit使用sshkey,无需输入账号和密码
- 【面试虐菜】—— MongoDB知识整理
- SABAPDEMOS 这个包下好多好玩儿的,可以看看
- 利用iisnode模块,让你的Node.js应用跑在Windows系统IIS中
- apk html启动图,apk添加启动图(AddApkSplashTools)
- [数学建模] TOPSIS法(考虑权重和不考虑权重)--评价类问题
- tkm批量转mp3工具使用教程
- 使用OpenSSL库接口,实现AES CBC加密,基于X509 base64编码证书的RSA非对称加密例子
- bootloader 详细介绍
- 恶意软件家族分类 模型集成方案总结
- pytorch---Cosine learning rate scheduler
- OpenJ_Bailian 2748
- nacos配置中心提示com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exceptio
- 有趣的java代码_求一些有趣的java小程序?
- 助力企业设备上云,京东云上物联网产品重磅发布
热门文章
- 推荐经典算法实现之BPMF(pymc3+MovieLen)
- 【正一专栏】如果世界杯上没有了意大利
- Ubuntu图形界面配置开机自启动
- Python 中的 if __name__ == __main__ 该如何理解
- 数据结构源码笔记(C语言):B树的相关运算算法
- 业余学python数据挖掘怎么赚钱_0基础转行学Python,学到什么地步能拿到月薪15k+?...
- yolov5训练_YoloV5模型训练实战教程:Kaggle全球小麦检测竞赛
- Define and Publish Platform Events
- WebMagic功能——XPath、CSS选择器、正则表达式 || 抽取元素API、获取结果API || ​​​​​​​获取链接||​​​​​​​使用Pipeline保存结果
- matplotlib中plot的颜色