框架的使用(六):scrapy
来源:互联网 发布:下载12360软件下载 编辑:程序博客网 时间:2024/05/22 16:07
第一个小项目
经过上面的学习,现在我们完全具备了开发小的项目的能力,现在我们开始吧
准备:
系统平台:Ubuntu 16.04
软件编译环境:Pycharm
一:新建:在终端输入:scrapy startproject 《项目名称》 例如:scrapy projectone
会出现以下的显示:
你会在你的主文件夹下面看到你的新建成功后的文件
二:创建
在主文件夹下面利用pycharm 打开你的新建的文件
你会看到以下的列表;
新建爬虫:你需要在spiders下面新建一个.py格式的文件 例如:new1.py
三:编辑
现在准备工作可以说是全部的完成了,我们可以开心加愉快的书写我们的爬虫了
编辑文件:item.py
原始代码:
# -*- coding: utf-8 -*-# Define here the models for your scraped items## See documentation in:# http://doc.scrapy.org/en/latest/topics/items.htmlimport scrapyclass ProjectoneItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() pass
Item 是保存爬取到的数据的容器;其使用方法和python字典类似, 并且提供了额外保护机制来避免拼写错误导致的未定义字段错误。
类似在ORM中做的一样,您可以通过创建一个 scrapy.Item
类, 并且定义类型为 scrapy.Field
的类属性来定义一个Item。 (如果不了解ORM, 不用担心,您会发现这个步骤非常简单)
首先根据需要从dmoz.org获取到的数据对item进行建模。 我们需要从dmoz中获取名字,url,以及网站的描述。 对此,在item中定义相应的字段。编辑 tutorial
目录中的 items.py
文件:
# -*- coding: utf-8 -*-# Define here the models for your scraped items## See documentation in:# http://doc.scrapy.org/en/latest/topics/items.htmlimport scrapyfrom scrapy.item import Item,Fieldclass ProjectoneItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() url = scrapy.Field() title = scrapy.Field() link = scrapy.Field() pass编辑文件:pipeline.py
原始代码:
# -*- coding: utf-8 -*-# Define your item pipelines here## Don't forget to add your pipeline to the ITEM_PIPELINES setting# See: http://doc.scrapy.org/en/latest/topics/item-pipeline.htmlclass ProjectonePipeline(object): def process_item(self, item, spider): return item
因为本次我们需要完成的任务是爬取到某个网页,pipeline本次是不需要编辑的,代码如上
编辑文件:setting.py
原始代码:setting.py
# -*- coding: utf-8 -*-# Scrapy settings for projectone project## For simplicity, this file contains only settings considered important or# commonly used. You can find more settings consulting the documentation:## http://doc.scrapy.org/en/latest/topics/settings.html# http://scrapy.readthedocs.org/en/latest/topics/downloader-middleware.html# http://scrapy.readthedocs.org/en/latest/topics/spider-middleware.htmlBOT_NAME = 'projectone'SPIDER_MODULES = ['projectone.spiders']NEWSPIDER_MODULE = 'projectone.spiders'
因为本次我们需要完成的任务是爬取到某个网页,setting本次是不需要编辑的,代码如上
编辑文件:new1.py
由于是创建的新文件,我们需要从头编辑
代码如下:
from scrapy .spider import Spider #导入模块的方法 这里利用的是from import方法来导入Python模块的 模块的对象是scrapy.spider 常亮是Spider
class DmozSpider(spider): #这里是定义的一个类 类名是DmozSpider 父类是spider
name="dmoz" #爬虫的名字是“dmoz” 一定要知道,爬虫的名字是唯一的 但是也是不用的 经验的话尽量是不要和你的spider文件的名字相同。
allowed_domains=["peihua.cn"] #允许的域名范围 就是你最主要的是想爬取哪个网页的一级域名
start_urls=["http://www.peihua..cn/zhaosheng/default.aspx","http://www.peihua.cn/library/default.aspx"] #爬虫开始爬去的第一个url 初始的url 这里的url可以是一个 也是可以多个的 看你的需要来定的。
def parse(self,response): #这是属于一种方法的 def 本身是一个函数的对象 def 定义了一个模块的变量
filename = response.url.split("/")[-2] #这里定义了一个对象 但是这里还是有很多的知识点的 需要我们去挖掘 关于里面的匹配 在我的博客里面是有介绍的 请大家仔细的学习
open(filename,'wb').write(response.body) # 这里是利用open的对文件的操作 ‘wb’是已二进制写模式来打开的 对应的还有write
后续:请大家仔细的学习里面的知识 里面的知识点在我的博客中都是有写到的 要是没有写到的话请大家和我讨论 欢迎回复,回帖。
- 框架的使用(六):scrapy
- 框架的使用(一):scrapy
- 框架的使用(三):scrapy
- 框架的使用(四):scrapy
- 框架的使用(五):scrapy
- Python2 爬虫(六) -- 初尝Scrapy框架
- scrapy爬虫框架的使用
- 浅谈scrapy框架的使用
- scrapy框架的使用心得
- 框架的使用(二):scrapy
- Scrapy框架学习(六)----Downloader Middleware及使用MongoDB储存数据
- Python网络爬虫(八):Scrapy框架的使用
- scrapy框架的安装和初使用
- scrapy框架基本使用
- [Python][Scrapy 框架] Python3 Scrapy的安装
- [Python][Scrapy 框架] Python3 Scrapy的安装
- 使用python的scrapy框架,spider与pipelines的调用
- (八)Scrapy框架
- Android开发人员不得不收集的代码(持续更新中)
- java线程池
- ios plist文件存储数据
- ubuntu16.04 安装 eclipse
- java笔试题
- 框架的使用(六):scrapy
- java中IO
- SSM框架搭建及源码解析--AOP源码解析(五)
- SQLServer创建数据库、登录账户、用户、并授权
- 实现高斯模糊
- Search a 2D Matrix I,II
- Android——map(百度地图)
- 安卓开源项目周报0315
- 【整理】MFC下 各种字符串类型之间转换(MSDN及其他写法)