王艾歌

导航

 

首先是用pip3 install Scrapy, 我是用的mac系统直接安装就成功了没遇到过什么问题,安装好之后打开Pycharm建立项目,建立好了之后,点击terminal然后输入:scrapy startproject projectname如下图所示,我建立的是FirstProject ,

然后点击你所建立项目的文件,即可发现刚刚建立的包,如下图所示,我建立的项目是MySpider然后在其中建立FirstProject,下面分别介绍各个模块。

items.py:它定义了Item数据结构,所有的Item的定义都可以放在这里

pipelines.py:所有的Item pipline的实现都在这里

setting.py:它定义项目的全局配置

spider.py:包含每个Spider项目的实现,每个Spider都有一个文件

然后在命令行创建一个Spider,例如我要创建一个myspider这个Spider,命令为:scrapy genspider  myspider itcast.cn,其中第一个参数为Spider名称,第二个参数为网站域名,所谓网站域名就是你要爬取哪个网站,执行完这个命令之后,你会发现spider里面多了一个模块名字为myspider,就是你建立的Spider名称,打开这个模块,代码如下

import scrap

class MyspiderSpider(scrapy.Spider):
    name = 'myspider'
    allowed_domains = ['it cast.cn']
    start_url = ['http://itcast.cn']
    
    def parse(self,response):
        pass

这个Spider有三个属性,name,它是每个项目唯一的名字,allowed_domains它是爬取的域名,start_url它包括在启动时候的url列表,还包括一个parse方法,然后将item.py进行修改,

import scrapy


class FirstprojectItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    name = scrapy.Field()
    title = scrapy.Field()
    info = scrapy.Filed()

然后解析,提取方式我们可以用css或者xpath,我们采用xpath

import scrapy

from FirstProject.FirstProject.items import FirstprojectItem
class MyspiderSpider(scrapy.Spider):
    name = 'myspider'
    allowed_domains = ['itcast.cn']
    start_urls = ['http://itcast.cn/']

    def parse(self, response):

        teacher_list = response.xpath('//div[@class = "li_txt"]')
        item = FirstprojectItem()
        for each in teacher_list:

            item['name'] = each.xpath('./h3/text()')
            item['title'] = each.xpath('./h4/text()')
            item['info'] = each.xpath('./p/text()')
       return item

 首先,实例化一个item将解析内容复制给item,然后采用xpath进行解析,最后在相应的目录下运行此命令 scrapy crawl myspider 其中myspider是我的模块名称,之后即可看到相应结果

如需保存运行结果可执行scrapy crawl myspider -o myspider.json此命令是保存所有内容

scrapy crawl myspider -o myspider.jsonlines此命令是每一个Item输出一行json

如果需要将数据存储到数据库,则需要是Item Pipeline ,item pipeline为项目管道,当item生产之后,item会被发送给itempipeline进行处理,item pipeline通常用来清洗html数据,查重,将结果保存到数据库等操作

 

posted on 2018-08-25 16:55  王艾歌  阅读(119)  评论(0)    收藏  举报