scrapy基本使用(一)

参考文档:Scrapy入门教程 http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html

1、 安装

python3.5 按照官网大写的安不上,要是小写的才能安上

pip install scrapy

理论上如果报错,再看几遍就好了,至少我是这样,可能是网络问题吧。

2、 基础操作

1) 创建项目

这是第一步,因为我们要使用人家搭好的框架,这步就是生成框架。

scrapy startproject tutorial

执行成功会在当前目录生成一个文件夹。

2) 文件夹里的内容

官网说的很详细了,这里引用官网,我根据自己浅薄的知识理解一下。

scrapy.cfg: 项目的配置文件

tutorial/: 该项目的python模块。之后您将在此加入代码。(这才是核心呀。。)

tutorial/items.py: 项目中的item文件.(这是创建容器的地方,爬取的信息分别放到不同容器里)

tutorial/pipelines.py: 项目中的pipelines文件.

tutorial/settings.py: 项目的设置文件.(我用到的设置一下基础参数,比如加个文件头,设置一个编码)

tutorial/spiders/: 放置spider代码的目录. (放爬虫的地方)

3) 定义容器(items.py)

我个人认为,容器不用一开始就定好,应该是一点一点加的,但是官网就这个顺序。。

修改items.py

import scrapy

class DmozItem(scrapy.Item): #创建一个类,继承item类,就是继承人家写好的容器嘛
    title = scrapy.Field() # 取哪些内容,就创建哪些容器
    link = scrapy.Field()
    desc = scrapy.Field()

3、 爬虫的编写

例子:

import scrapy

class DmozSpider(scrapy.Spider): # 继承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] # 获取url,用”/”分段,获去倒数第二个字段
        with open(filename, ‘wb‘) as f:
            f.write(response.body) # 把访问的得到的网页源码写入文件

这里需要重点说一下parse方法

被调用时,每个初始URL完成下载后生成的 Response 对象将会作为唯一的参数传递给该函数。

该方法负责解析返回的数据(response data),提取数据(生成item)以及生成需要进一步处理的URL的 Request 对象。

简单说就是用来编写爬虫的主体,response就是网页源码。

4、 启动爬虫

一条命令:

scrapy crawl dmoz

执行爬虫的时候发生了什么?

Scrapy为Spider的 start_urls 属性中的每个URL创建了 scrapy.Request 对象,并将 parse 方法作为回调函数(callback)赋值给了Request。

例:

yield scrapy.Request(self.url + nextLink, callback=self.parse)

Request对象经过调度,执行生成 scrapy.http.Response 对象并送回给spider parse() 方法。

这里我们了解到请求链接的改变是靠回调函数实现的。

时间: 2024-12-28 18:00:13

scrapy基本使用(一)的相关文章

第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装

第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装 当前环境python3.5 ,windows10系统 Linux系统安装 在线安装,会自动安装scrapy模块以及相关依赖模块 pip install Scrapy 手动源码安装,比较麻烦要自己手动安装scrapy模块以及依赖模块 安装以下模块 1.lxml-3.8.0.tar.gz (XML处理库) 2.Twisted-17.5.0.tar.bz2 (用Python编写的异步网络框架) 3.Scrapy-1.4.0.tar.gz

Python爬虫从入门到放弃(十一)之 Scrapy框架整体的一个了解

这里是通过爬取伯乐在线的全部文章为例子,让自己先对scrapy进行一个整理的理解 该例子中的详细代码会放到我的github地址:https://github.com/pythonsite/spider/tree/master/jobboleSpider 注:这个文章并不会对详细的用法进行讲解,是为了让对scrapy各个功能有个了解,建立整体的印象. 在学习Scrapy框架之前,我们先通过一个实际的爬虫例子来理解,后面我们会对每个功能进行详细的理解.这里的例子是爬取http://blog.jobb

Scrapy+BeautifulSoup+MongoDB 高性能数据采集方案(Chapter 1st)

运行环境 CentOS7.3 + Python2.7 + Scrapy1.3 + MongoDB3.4 + BeautifulSoup4.6 编程工具 PyCharm + Robomongo + Xshell 请确保你的 python版本为2.7.5以上 版本强烈推荐直接[翻 墙 安 装],简单轻松 yum install gcc libffi-devel python-devel openssl-devel pip install scrapy 如果提示以下错误 AttributeError:

python scrapy学习笔记(二)

使用scrapy批量抓取,参考http://python.jobbole.com/87155 一.创建项目 # scrapy startproject comics 创建完成后的目录结构 . ├── comics │   ├── __init__.py │   ├── items.py │   ├── middlewares.py │   ├── pipelines.py │   ├── settings.py │   └── spiders │       └── __init__.py └─

Python爬虫库Scrapy入门1--爬取当当网商品数据

1.关于scrapy库的介绍,可以查看其官方文档:http://scrapy-chs.readthedocs.io/zh_CN/latest/ 2.安装:pip install scrapy  注意这个库的运行需要pywin32的支持,因此还需要安装pywin32.可以在这个网站上选择合适的版本下载安装:https://sourceforge.net/projects/pywin32/files/pywin32/ 3.挖掘当当网商品数据: 首先需要创建一个名为dangdang的爬虫项目,在pow

windows下scrapy框架学习笔记—'scrapy' 不是内部或外部命令

最近几天在深入的学习scrapy框架,但是装完各种需要的基础包之后却发现scrapy命令在别的路径下都用不了,我一开始是把python安装在F:\Python路径下的,安装了scrapy后它默认都会安装在这个路径下,scrapy在路径F:\Python\Scripts路径下,我的scrapy命令只能在此路径下用,因此创建什么工程也都只能在此文件下. 想了一下它的工作原理:它在F:\Python\Scripts路径下,就会在Scripts文件下存在一个scrapy批处理文件,那么在DOS下想要命令

Scrapy爬虫 -- 02

爬虫最基本的部分是要将网页下载,而最重要的部分是过滤 -- 获取我们需要的信息. 而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 prev

scrapy采集列表页的另一种方式

又是采集绿色下载站的最新软件,又是采用另一种方式(前两种是采用正则和xpath),呵呵 感觉有点像孔乙已的茴字有几种写法了 这回用CrawlSpider,Rule来配合采集 这次不用生成许多start_urls列表项了,可以按规则来自动读取,贴核心代码 # -*- coding: utf-8 -*- from scrapy.contrib.spiders import CrawlSpider,Rule from scrapy.selector import Selector from scrap

Python中scrapy框架如何安装配置

在python学习群里发现很多学习网络爬虫技术的童靴都搞不懂python爬虫框架scrapy的安装配置,在学习python网络爬虫初级阶段的时候我们利用urllib和urllib2库以及正则表达式就可以完成了,不过遇到更加强大的爬虫工具--爬虫框架Scrapy,这安装过程也是煞费苦心哪,在此整理如下. Windows平台: 我的系统是Win7,首先,你要有Python,我用的是2.7.7版本,Python3相仿,只是一些源文件不同. 官网文档:http://doc.scrapy.org/en/l

Scrapy精华教程(六)——自动爬取网页之II(CrawlSpider)

一.目的. 在教程(二)(http://blog.csdn.net/u012150179/article/details/32911511)中使用基于Spider实现了自己的w3cschool_spider,并在items.py中定义了数据结构, 在pipelines.py中实现获得数据的过滤以及保存. 但是以上述方法只能爬取start_url列表中的网页,而网络爬虫如google等搜索引擎爬虫实现的就是对整个互联网的爬取,所以在本教程中研究使用scrapy自动实现多网页爬取功能. 在教程(五)