zoukankan      html  css  js  c++  java
  • CrawlSpiders类

    CrawlSpiders类:深入爬取

    创建爬虫:

    scrapy genspider -t crawl tencent tencent.com

     # 匹配链接

    from scrapy.linkextractors import LinkExtractor

    link_list = LinkExtractor(allow=("start=d+"))

    # 处理链接,拿出response所有匹配到的链接

    link_list.extract_links(response)

    allow:符合就提取

    deny:不符合就提取

    deny_domains:一定不会匹配

     rules:

    link_extractor:是一个link extractor对象,用于需要定义需要提取的链接

    callback:从link_extractor中每获取到链接时,参数所指定的值作为回调函数,改回调函数接受一个response作为其第一个参数

    当编写爬虫规则时,避免使用parse作为回调函数,由于CrawlSpider使用parse方法来实现其逻辑,如果覆盖了parse方法,将会运行失败

    follow:是一个布尔值,指定了根据该规则从response提取的链接是否需要跟进,如果callback为None,follow默认为True

    class TencentSpider(CrawlSpider):
        name = "tencent"
        allow_domains = ["hr.tencent.com"]
        start_urls = ["http://hr.tencent.com/position.php?&start0#a"]
    
        pagelink = LinkExtractor(allow=("start=d+"))
        # 提取链接
        rules = [
             Rule(pagelink,callback="parseTent",follow=True)               
        
         ]
    
    
        def parseTencent(self,response):
            pass

    scrapy提供了log功能,可以通过logging模块使用

    修改配置文件settings.py:

    LOG_fILE = "TencentSpider.log"

    LOG_LEVEL = "INFO"

    Log levels:

    • Scrapy提供5层logging级别:

    • CRITICAL - 严重错误(critical)

    • ERROR - 一般错误(regular errors)
    • WARNING - 警告信息(warning messages)
    • INFO - 一般信息(informational messages)
    • DEBUG - 调试信息(debugging messages)
    1. LOG_ENABLED 默认: True,启用logging
    2. LOG_ENCODING 默认: 'utf-8',logging使用的编码
    3. LOG_FILE 默认: None,在当前目录里创建logging输出文件的文件名
    4. LOG_LEVEL 默认: 'DEBUG',log的最低级别
    5. LOG_STDOUT 默认: False 如果为 True,进程所有的标准输出(及错误)将会被重定向到log中。例如,执行 print "hello" ,其将会在Scrapy log中显示。

    CrawlSpiders类比Spiders类多了自动获取link。

  • 相关阅读:
    使用InstelliJ IDEA创建Web应用程序
    别了WindowsXP
    在MyEclipse中搭建Spring MVC开发环境
    iPhone中国移动收不到彩信,联通不用设置都可以,具体设置方法:
    WebLogic 服务器配置
    c# 第五课 string
    c# 第五课 regex
    c# 第四课 Arrays
    c# 第四课 interfaces
    c# 第五课 async await
  • 原文地址:https://www.cnblogs.com/xuezhihao/p/11646142.html
Copyright © 2011-2022 走看看