scrapy入门

scrapy是很实用的网络爬虫工具,然而由于之前没有对python进行系统的学习,bug很多,进程十分缓慢,将今天的学习过程写下来。

1.安装scrapy

  可以直接在目录下pip install scrapy,然而这样有一定可能会报错,找不到关联的包。于是现在我们需要下载安装pywin32这个包,pip似乎无法直接安装这个包,推荐用下面这个地址直接安装

http://www.softpedia.com/get/Programming/Other-Programming-Files/PyWin32.shtml#download
注意 一定要看清python的版本和位数。


2.创建项目

scrapy非常强大,直接到需要放置project的目录,然后使用以下指令

scrapy startproject 项目名
就可以在这个目录下创建出自己的工程,创建后应该有如下几个文件:

scrapy入门_第1张图片 其中 scrapy.cfg是项目的配置文件。


3.编写爬虫

这里我们试着爬取一下百度首页的数据

在spiders的文件夹里面创建文件baidu_spider.py 这个文件的代码如下:

import scrapy

from try1.items import DmozItem

class DmozSpider(scrapy.Spider):
    name = "baidu"
    allowed_domains = ["baidu.com"]
    start_urls = [
        "http;//baidu.com"
    ]

    def parse(self, response):
        filename = response.url.split("/")[-2]
        with open(filename, 'wb') as f:
            f.write(response.body)
name是爬虫的名字,非常重要,不能重复。

parse()是爬虫的方法,下载完成后,每个初始url下载完成后会返回一个response类型的对象,该方法对response对象进行解析与处理,提取数据以及生成下一步的Requese对象。

start_url是爬虫开始的url。


4.进行爬取:

进入项目的根目录以后,在命令行输入

scrapy crawl baidu(爬虫名)

就可以开始爬取了。crawl baidu 自动爬取baidu.com

scrapy入门_第2张图片

得到类似如图输出。


5.在shell中尝试selector选择器

先使用

scrapy shell "http://baidu.com"

这条指令直接打开shell,然后可以使用respons的对象进行各种尝试,尝试如图

scrapy入门_第3张图片


6.存储输出

若要存储输出内容,可以使用下面这句指令

scrapy crawl baidu -o words.json

存储为json文件

你可能感兴趣的:(scrapy入门)