python爬虫之scrapy框架(一)

python爬虫之scrapy框架(一)

一、安装scrapy框架

这里我们还是通过pip install scrapy进行安装,如果遇到问题请大家百度解决;

二、我们先来说scrapy框架的命令行工具与简单爬虫的编码

1、打开命令行,输入scrapy

2、输入 scrapy startproject baidutieba 创建项目

然后你的本地就会出现有如下结构的文件:
**baidutieba
–baidutieba
—-spiders
——init.py
——(这里是要你编写的爬虫文件,a)在命令行输入 cd baidutieba; b)命令行输入scrapy genspider biadutieba tieba.baidu.com,就会创建baidutieba.py文件;
—-init.py
—-items.py(这个是你要对你的数据进行声明的文件)
—-pipelines.py(这个是你对你的数据进行清洗和存储的文件)
—-settings.py(这个是你对日志,数据库等文件的配置文件)
–scrapy.cfg**

我们打开文件,看一下都写了什么?

# -*- coding: utf-8 -*-
import scrapy


class BiadutiebaSpider(scrapy.Spider):
    name = "biadutieba"
    allowed_domains = ["tieba.baidu.com"]
    start_urls = (
        'http://www.tieba.baidu.com/',
    )

    def parse(self, response):
        pass

稍等我们来编辑这个文件。

3、进行代码的编写

首先我们要搞清楚我们要爬取那些数据:
**(1)发帖人
(2)帖子内容
(3)发帖时间**

a)编写items文件

# -*- coding: utf-8 -*-

# Define here the models for your scraped items
#
# See documentation in:
# http://doc.scrapy.org/en/latest/topics/items.html

import scrapy


class BaidutiebaItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    POSTER = scrapy.Field()
    CONTENT = scrapy.Field()
    TIME = scrapy.Field()

b)编写baidutieba.py文件

这里我们就要对先前我们所要的数据进行筛选,这里我们要用到的神器就是scrapy shell
首先在命令航中输入 scrapy shell [URL],这里我输入scrapy shell http://tieba.baidu.com/p/4749854079

接着我们输入view (response)
这时,浏览器就会大打开这个链接的网页,这个网页上显示的只是scrapy能解析的网页,其他的AJAX和JS控制的代码,我们则无法加载;
在这里,我们就能对我们在baidutieba.py文件中的我们所需字段的xpath代码进行试验,看是否得到我们想要的:


response.xpath('//li[@class="d_name"]/a/text()').extract()

response.xpath('//div[@class="d_post_content_main "]/div/cc/div/text()').extract()

response.xpath('//div[@class="post-tail-wrap"]/span[4]/text()').extract()

然后我们来运行,我们的代码:
在命令行中输入cd baidutieba,将命令行转移到我们的爬虫文件夹中;
然后输入 scrapy list,查看爬虫列表;
接着输入 scrapy crawl baidutieba -o spider.csv
然后看图:

这样我们就顺利的爬下了我们所需的文件!
最后这个小爬虫的所有代码都在这:https://github.com/depers/Python-Reptile/tree/master/BDTB-scrapy

你可能感兴趣的:(python爬虫,python,框架,爬虫)