博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Scrapy爬虫 -- 02
阅读量:6635 次
发布时间:2019-06-25

本文共 2096 字,大约阅读时间需要 6 分钟。

hot3.png

爬虫最基本的部分是要将网页下载,而最重要的部分是过滤 -- 获取我们需要的信息。

而scrapy正好提供了这个功能:

首先我们要定义items:

Itemsare containers that will be loaded with the scraped data; they work like simple python dicts but provide additional protection against populating undeclared fields, to prevent typos.

摘自官网,大意就是说iteams是用来存储抓取的数据结构,提供相对与python字典类型额外的类型保护。(这个具体的保护方式待研究)

示例如下:

project/items.py

import scrapyclass DmozItem(scrapy.Item):    title = scrapy.Field()    link = scrapy.Field()    desc = scrapy.Field()

然后我们需要编写Spider,抓取网页并选择信息,将其放入items之中。

示例如下:

import scrapyclass DmozSpider(scrapy.Spider):    name = "dmoz"    allowed_domains = ["dmoz.org"]    start_urls = [        "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",        "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"    ]    def parse(self, response):        filename = response.url.split("/")[-2]        with open(filename, 'wb') as f:            f.write(response.body)

说明:

  1. name Spider的名字,这个名字要在这个项目之中唯一,原因稍后就知道了。

  2. allowed_domains,这个是域名设置,即是否抓取其他域名,一般摄制成要start_urls中地址的域名即可

  3. start_urls 这是一个列表,表示scrapy抓取网页的起始位置,以样例为例,如果你要抓取http://www.dmoz.org/Computers/Programming/Languages/Python/Books/中所有的图书,那start_urls就是上述网址。
  4. parse函数 个人认为类似于java中接口的概念,scrapy向网站发出request,然后调用DmozSpider中的parse函数对返回的response进行处理。

开始启动蜘蛛:

scrapy crawl dmoz

正常的化输出如下:

2014-01-23 18:13:07-0400 [scrapy] INFO: Scrapy started (bot: tutorial)2014-01-23 18:13:07-0400 [scrapy] INFO: Optional features available: ...2014-01-23 18:13:07-0400 [scrapy] INFO: Overridden settings: {}2014-01-23 18:13:07-0400 [scrapy] INFO: Enabled extensions: ...2014-01-23 18:13:07-0400 [scrapy] INFO: Enabled downloader middlewares: ...2014-01-23 18:13:07-0400 [scrapy] INFO: Enabled spider middlewares: ...2014-01-23 18:13:07-0400 [scrapy] INFO: Enabled item pipelines: ...2014-01-23 18:13:07-0400 [dmoz] INFO: Spider opened2014-01-23 18:13:08-0400 [dmoz] DEBUG: Crawled (200) 
 (referer: None)2014-01-23 18:13:09-0400 [dmoz] DEBUG: Crawled (200) 
 (referer: None)2014-01-23 18:13:09-0400 [dmoz] INFO: Closing spider (finished)

待续

转载于:https://my.oschina.net/u/1242185/blog/324256

你可能感兴趣的文章
shell教程
查看>>
【资源盘点】Steema 2018资源整合,各系列教程合集都在这里!
查看>>
IDEA常用快捷键
查看>>
rsync工具介绍以及常用选项
查看>>
VARCHART XGantt系列教程:如何用值来标记曲线
查看>>
京东云Kubernetes集群最佳实践
查看>>
分布式协调神器 ZooKeeper 之整体概述
查看>>
2019争夺战 人工智能走向B端
查看>>
H2 script STRINGDECODE
查看>>
OSChina 周末乱弹 —— 小明滚粗去!源创会走起~
查看>>
jquery节点操作:创建/添加/删除/清空/复制元素
查看>>
Elastic 并发更新问题
查看>>
停用 iOS 模拟器输出大量的系统调试数据
查看>>
反射机制——获取Class中的字段
查看>>
写给开源中国产品经理或相关负责人的信
查看>>
BarTender数据源字体大小怎么设置
查看>>
ABBYY拆分对页和校正文本方向的教程
查看>>
Object-C代码练习【复制大型文件(一次读5K)】
查看>>
JGroups - 01历史
查看>>
java 设计模式 (代理模式和装饰者模式的区别)
查看>>