zoukankan      html  css  js  c++  java
  • CrawlSpider ---> 通用爬虫 项目流程

    通用爬虫

    通用网络爬虫 从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果。

    不扯没用的,上干货!

    创建项目:

      cmd 命令: scrapy startproject 项目名 

    创建

      cmd 命令:scrapy genspider -t crawl 爬虫名 允许爬取得域名

    在spider文件 主爬虫文件.py中 替换 start_urls 为要爬取的网址!

    在rules中进行指定规则:
      ps:规则制定时选中的必须是标签,或正则匹配连接地址(可跳转性)
    rules = (
    Rule(LinkExtractor(allow=r'/sort/?st=product&sort=A[A-Z]'), follow=True), # 参数: allow 正则选择要满足的需求特点 deny :一定不取得特点
    Rule(LinkExtractor(restrict_xpaths="//a[text()='»']"), follow=True),    # 参数 restrict_xpaths 用xpath 反向选择或手写xpath取要满足的需求特点
    Rule(LinkExtractor(restrict_xpaths="/html/body/div[4]/div/div[2]/div[4]/div/div[1]/div/a"), callback='parse_data',follow=False), # 拷贝xpath选择要满足的需求特点
    )

     ps:   

      LinkExtractor()   链接提取器  对选中连接或标签进行操作
      follow=True 同位置 继续 提取需求标签
      follow=False 停止 或 不在 同位置继续提取需求标签
      clllback='一个函数名' follow=True 时 没有太大必要使用,除非该页有需求值 follow=False 时 说明你到了目标数据位置 这是把请求的响应抛给了该函数

    而到了函数,就可以利用xpath取值了,封装进item里就可以了,这里item不需要你实例化了item= {}就可以了 通用爬虫帮你做了

    最后yield item

    主爬虫就写完了。

    然后 --》 ???
    然后的是就和普通scrapy一样了,
    settings.py 里配置 在之前写的博文里有,自行去查看
    item.py 里 设置需求数据字段
    pipelines.py 对数据队列 进行操作

    Ps:
    了解不深,个人看法:
    其实理解这个通用爬虫不难:
    就一句话:
      需要注意的点就在rules这块对吧,我的理解就是,这是在宏观意义上给你要提取输得位置进行制定规则,可以理解为定位,所有满足特点的位置就是我需求数据存放的位置!


    好了 就到这里! 简单吧 !
      
      其他的? 自己悟把!哈哈哈!



  • 相关阅读:
    HDU1575--Tr A(矩阵快速幂)
    HDU 2147--HDU 2147(博弈)--我可能做了假题。。。
    新年第一发--HDU1848--Fibonacci again and again(SG函数)
    【转】你真的会二分查找吗?
    windows与ubuntu双系统的安装
    bestcoder#9--1001--Lotus and Characters
    PC端的混合应用通讯问题
    JS构造函数详解
    JS的prototype的共享机制分析
    使用a标签直接下载图片
  • 原文地址:https://www.cnblogs.com/canhun/p/11134533.html
Copyright © 2011-2022 走看看