scrapy之爬虫初体验

本篇文章主要将怎样创建一个scrapy项目,以及完成第一个scrapy爬虫项目。

首先是安装scrapy模块,有很多原因都能导致scrapy模块安装失败,网上有很多教程让怎样安装scrapy。亲测比较有效的方法使用whl文件安装。不过有小伙伴也可以尝试直接使用pip install scrapy命令进行直接装,运气好就能一次装成功。

第一步:创建一个爬虫项目:window系统下按住win+R组合键,然后在运行窗口输入cmd,打开命令行窗口。
回到你要创建的工作目录下,当然使用anaconda软件的小伙伴如果不想安装其他软件,想提高使用效果,还是把scrapy项目建在工作目录下,当然jupyter是可以改变工作目录的。ps:jupyter创建的文件后缀是.ipynb,但scrapy只识别和执行后缀为.py的文件。所以可以把写好的文件选择另存为.py文件:File-Download as-Python
我的工作目录为E:\Python\Python_work\scrapy,cmd执行命令下图所示:
scrapy之爬虫初体验_第1张图片

创建一个scrapy爬虫项目,命令:scrapy startproject 项目名 [auto]  []:表示该内容可选择性添加;然后cd 项目名,进入到新建的项目中。如下图所示:

scrapy之爬虫初体验_第2张图片
在创建的项目中,创建一个爬虫文件,命令为:scrapy genspider -t basic 文件名 网站地址。basic 普通爬虫模板;crawl 自动爬虫模板。
scrapy之爬虫初体验_第3张图片
第二步,打开anaconda下的jupyter,进入到新建的项目目录中,我们会看到一下这些文件,目前进行简单的介绍,以后用到就会明白它们的用途。
scrapy之爬虫初体验_第4张图片
第三步,编写代码,首先在items.py中定义爬取的数据,打开文件,注释有说明此文件的作用和定义爬取数据的格式。注意:使用jupyter软件的小伙伴一定要保存修改的.py文件(因为jupyter会自动保存.ipynb格式的文件,但不会自动保存.py格式的文件)。
scrapy之爬虫初体验_第5张图片

其次在pipelines.py文件中,进行存储爬取数据的操作。

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

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://doc.scrapy.org/en/latest/topics/item-pipeline.html


class CsdnPipeline(object):
    def process_item(self, item, spider):
        for i in range(0,len(item['name'])):
            print(item['name'][i])
            print(item['class_num'][i])
            print(item['price'][i])
        return item

最后导入items文件中定义的类,进行请求网页和爬取数据,数据提取使用xpath。

# -*- coding: utf-8 -*-
import scrapy
from csdn.items import CsdnItem  #导入模块
from scrapy.http import Request
 

class CourseSpider(scrapy.Spider):
    name = 'course'
    allowed_domains = ['edu.csdn.net/courses']
    start_urls = ['http://edu.csdn.net/courses/']

    def parse(self, response):
        item = CsdnItem() #实例化
        item['name'] = response.xpath("//span[@class='title']/text()").extract()  #
        item['class_num'] = response.xpath("//p/em/text()").extract()
        item['price'] = response.xpath("//p[@class='clearfix']/i/text()").extract() #

yield item

在setting.py文件中进行如下文件配置。

很多时候会把该配置ROBOTSTXT_OBEY = False。
在cmd执行命令: scrapy crawl 文件名 (--nolog)      --nolog表示结果显示在命令行中,可以省略。执行该命令必须在项目路径下,不然会报错。
 

你可能感兴趣的:(scrapy之爬虫初体验)