• scrapy爬虫简单项目入门练习


    【写在开头】

    scrapy环境配置配置好了之后,开始着手简单项目入门练习。关于环境配置见上一篇博客https://www.cnblogs.com/ljxh/p/11235079.html

    【正文部分】

    视频是跟着CZ的学的,入门练习是爬取CZ官网的师资信息,

    1、新建工程

      控制台输入:scrapy startproject myspider 新建一个爬虫的工程文件,后面的myspider 可以自己命名。

    2、生成一个爬虫

      控制台输入scrapy genspider itcast "itcast.cn",itcast是爬虫文件的名称,后面的"itcast.cn"是允许去爬的范围。完成上面两步之后如图1所示。

    图1 生成的工程文件截图

    3、更改itcast.py爬虫文件如下,更改最开始请求的URL地址和处理URL响应的函数,程序中用到了xpath对响应进行信息提取,还有日志模块生成日志文件。

    # -*- coding: utf-8 -*-
    import scrapy
    import logging
    
    logger = logging.getLogger(__name__)
    
    class ItcastSpider(scrapy.Spider):
        name = 'itcast'
        allowed_domains = ['itcast.cn']  # 允许爬去的范围
        start_urls = ['http://www.itcast.cn/channel/teacher.shtml']  # 最开始请求的URL地址
    
        # parse方法名是不能改变的,下面的属性名item是可以随意定义的
        def parse(self, response):
            # 处理start_url地址对应的响应
            # 分组
            li_list = response.xpath("//div[@class='tea_con']//li")
            for li in li_list:
                item = {}
                item['name'] = li.xpath(".//h3/text()").extract_first()
                item['title'] = li.xpath(".//h4/text()").extract_first()
                logger.warning(item)
                yield item

    4、更改setting.py文件,将管道处理激活,即取消PIPELINES的注释,用于保存数据。

    图2 激活PIPELINES

    5、在setting.py文件中设置日志信息。

    LOG_LEVEL = "WARNING"
    LOG_FILE = './log.log'

    6、在控制台输入:scrapy crawl itcast,后面itcast根据自己的爬虫文件的名字来,运行结果如下:

     

    图3 控制台输出的爬虫信息

    备注:由于爬取的数据很多,这里只是截取了包含爬虫命令的一段数据。

    图4 日志文件截图

     【写在最后】

      到这一个简单入门的爬虫项目就完成了,后面还有很多东西要学,这里做个简单的记录。文章是根据CZ的视频学习练习的,如有侵权,删帖。

     小编尊重原创,文章如有侵权,联系小编删帖,谢谢监督。转发请备注出处!

  • 相关阅读:
    使用ueditor实现多图片上传案例——Servlet层(UploadServlet)
    使用ueditor实现多图片上传案例——截取字符串层Util(SubString_text)
    [转载]oracle删除数据后的恢复
    [转载]oracle删除数据后的恢复
    为什么在定义hashcode时要使用31这个数呢?
    为什么在定义hashcode时要使用31这个数呢?
    [转载]hashCode和equals
    [转载]hashCode和equals
    Oracle HINT的用法
    Oracle HINT的用法
  • 原文地址:https://www.cnblogs.com/ljxh/p/11245414.html
Copyright © 2020-2023  润新知