scrapy爬取itcast网站的的教师信息

1.命令行创建项目

scrapy startproject itcast

2.编写items.py

import scrapy


class ItcastItem(scrapy.Item):
    # define the fields for your item here like:
    # 老师的姓名
    name = scrapy.Field()
    # 老师的职称
    title = scrapy.Field()
    # 老师信息
    info = scrapy.Field()

3.spiders目录下创建itspid.py文件

scrapy genspider itspid "itcast.cn"

4.编写itspid.py文件

import scrapy
# item文件的类
from itcast.items import ItcastItem


class ItspidSpider(scrapy.Spider):
    # 爬虫名,启动爬虫是需要的参数*必须
    name = 'itspid'

    # 爬取域范围,循序爬虫再这个域名下进行爬取(可选)
    allowed_domains = ['itcast.cn']

    # 起始url,爬虫执行后第一批请求,将从这个列表里获取
    start_urls = ['http://www.itcast.cn/channel/teacher.shtml']

    def parse(self, response):
        node_list = response.xpath("//div[@class='li_txt']")

        # 用来存储所有的item字段的
        items = []
        for node in node_list:
            # 创建item字段对象,用来存储信息
            item = ItcastItem()
            # .extract()将xpath对象转化成Unicode字符串
            name = node.xpath("./h3/text()").extract()
            title = node.xpath("./h4/text()").extract()
            info = node.xpath("./p/text()").extract()

            # xpath 打印的是列表。
            # print(name[0])
            # print(title[0])
            # print(info[0])

            item['name'] = name[0]
            item['title'] = title[0]
            item['info'] = info[0]

            # return item  # 给管道
            # return scrapy.Request(url)  # 给scheduler
            items.append(item)

        return items

5.设置setting

是否遵守ROBOTS协议。。

ROBOTSTXT_OBEY = False

6.执行命令

scrapy crawl itcast -o itcast.json

-o :代表输出

itcast.json:输出的json文件

itcast.xml:输出的是xml文件

itcast.csv:输出的是csv文件

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页