使用Scrapy爬取传智讲师个人信息
一. 新建项目(scrapy startproject)
打开命令行,按以下步骤操作
C:\Users\JunSIr>d:
D:\mkdir scrapyProject
D:\>cd scrapyProject
D:\scrapyProject>scrapy startproject firstSpider
------------------------------------------------------------
New Scrapy project 'firstSpider', using template directory 'D:\anaconda\lib\site-packages\scrapy\templates\project', created in:
D:\scrapyProject\firstSpider
You can start your first spider with:
cd firstSpider
scrapy genspider example example.com
------------------------------------------------------------
D:\scrapyProject>cd firstSpider
D:\scrapyProject\firstSpider>
- 打开pycharm --> 文件—>打开—>找到我们之前用命令行创建的爬虫文件夹,看到如下
- scrapy.cfg: 项目的配置文件。
- items.py: 项目的目标文件。
- pipelines.py: 项目的管道文件。
- settings.py: 项目的设置文件。
- /spiders/: 存储爬虫代码目录。
二、确定目标
我们的目标url是: http://www.itcast.cn/channel/teacher.shtml
需要获取的数据为:
- 讲师姓名
- 职称
- 个人信息
- 打开items.py文件,完成如下代码编写
import scrapy
class FirstspiderItem(scrapy.Item):
name = scrapy.Field()
title = scrapy.Field()
info = scrapy.Field()
三、爬虫编写
1.爬数据
命令行在firstSpider目录下,输入如下命令
D:\scrapyProject\firstSpider>scrapy genspider itcast "itcast.cn"
pycharm中spiders/下会多处一个itcast.py文件,其中代码如下
# -*- coding: utf-8 -*-
import scrapy
class ItcastSpider(scrapy.Spider):
name = 'itcast'
allowed_domains = ['itcast.cn']
start_urls = ['http://itcast.cn/']
def parse(self, response):
pass
-
name = “” :这个爬虫的识别名称,必须是唯一的,在不同的爬虫必须定义不同的名字。
-
allow_domains = [] 是搜索的域名范围,也就是爬虫的约束区域,规定爬虫只爬取这个域名下的网页,不存在的URL会被忽略。
</