scrapy

2021-08-03  本文已影响0人  阿尔卑斯_

一、安装&基础命令

#安装:
pip install scrapy

创建项目:
scrapy startproject 项目名
# 进入项目目录下创建爬虫:
scrapy genspider 爬虫名

查看爬虫:
scrapy list

运行爬虫:
scrapy crawl 爬虫名

运行爬虫后自动生成文件:
scrapy crawl 爬虫名 -o 文件名.csv  (支持 'json', 'jsonlines', 'jl', 'csv', 'xml', 'marshal', 'pickle')

三、基础使用

爬取 学校大全 的 学校名 和 地址 并输出到 csv文件中

1、创建项目

scrapy startproject scrapydemo

2、cd进入到项目中,创建爬虫

scrapy genspider spidername

3、在创建的spidername.py文件中编辑内容

import scrapy
# 导入在items中写好的类
from Scyapydemo.items import TestspiderItem
import time

# 编写爬虫
class RunoobSpider(scrapy.Spider):
    name = 'spidername'  # 文件名
    allowed_domains = ['ruyile.com'] # 允许访问的网址
    start_urls = ['https://www.ruyile.com/xuexiao/?a=44&t=2'] # 开始访问的网址

    def parse(self, response):
        try:
            course = TestspiderItem() # 实例化一个Item数据对象
            # 获取class为"sk"的节点
            courseInfos = response.xpath('//div[@class="sk"]')
            # 遍历节点
            for courseInfo in courseInfos:
                # 根据需求提取指定数据并存入Item的对象中
                course['SchoolName'] = courseInfo.xpath('.//h4/a/text()').extract_first()
                course['a_Province'] = "北京"
                course['b_City'] = "北京"
                course['c_District'] = "海淀"
                course['d_Address'] = courseInfo.xpath('.//text()[2]').extract_first()
                # time.sleep(1)
                yield course

                # 判断是否存在下一页
                next_page = response.xpath('//div[@class="fy"]/a[7]/@href').extract_first()  # 取出来下一页的链接
                # 判断是否存在内容
                if next_page is not None:
                    next_page = response.urljoin(next_page)
                    yield scrapy.Request(next_page, callback=self.parse)
        except Exception as err:
            print('出现异常' + str(err))

4、在item文件中定义结构化数据字段,用于保存爬取的数据

import scrapy
class TestspiderItem(scrapy.Item):
    SchoolName = scrapy.Field() #学校名
    a_Province = scrapy.Field() #省
    b_City = scrapy.Field()  # 市
    c_District = scrapy.Field()  # 区
    d_Address = scrapy.Field() # 地址

5、运行爬虫并保存csv文件

scrapy crawl spidername -o school.csv
上一篇 下一篇

猜你喜欢

热点阅读