zoukankan      html  css  js  c++  java
  • 爬虫学习 -- day3

    • selector (scrapy 选择器)

     .get() 是返回匹配的第一项

    .getall()返回包含所有结果的列表

     非标准的伪元素:

    ::text    文本节点

    ::attr(name)   选择属性值 ,其中name是想要值得属性得名称

     

    实例:

     response.xpath('//title/text()').get()

    response.xpath('//div[@id="images"]/a/text()').get() 

    或者

    response.xpath('//div[@id="images"]').css('a::text').get()     //获取内容

     response.xpath('//div[@id="images"]').css('img::attr(src)').get()   //获取属性

    假设只想要 My image 可以再添加正则 

     用 re_first 获得第一个

    • spider

    可再settings.py里面设置请求头,这样就可以带 UA或者cookie访问

    start_requests(self)默认是用GET方法请求网站,如果想改为POST请求,需要在spider处设置

     callback  默认回调函数是   self.parse

    •  Item与Pipeline

     

    当Item被spider抓取后,它被发送到Item管道(Item pipeline),它通过顺序执行的几个组件来处理Item。

    每个item pipeline组件(有时称之为“Item Pipeline”)是实现了简单方法的Python类。他们接收到Item并通过它执行一些行为,同时也决定此Item是否继续通过pipeline,或是被丢弃而不再进行处理。

     

    以下是item pipeline的一些典型应用:

    • 清理HTML数据
    • 验证爬取的数据(检查item包含某些字段)
    • 查重(并丢弃)
    • 将爬取结果保存到数据库中

    注意 pipeLine中的逻辑 正确则返回Item 如果错误返回的是 DropItem

     

    process_item(self, item, spider)

    每个 Item Pipeline 组件都会调用此方法。该方法必须:返回一个带数据的dict,或是返回一个 Item(或任何后代类)对象,或是返回一个 Twisted Deferred 或者抛出 DropItem 异常。被丢弃的item不再被之后的其他pipeline组件处理。

    参数:

    • item (Item 对象或者一个dict) – 被爬取的item
    • spider (Spider 对象) – 爬取该item的spider

    另外,它们还可以实现以下方法:

    open_spider(self, spider)

    当spider被开启时,这个方法被调用。

    参数:

    • spider (Spider 对象) – 被开启的spider

    close_spider(self, spider)

    当spider被关闭时,这个方法被调用

    参数:

    • spider (Spider 对象) – 被关闭的spider

    from_crawler(cls, crawler)

    如果存在,则调用此类方法以从 Crawler 创建pipeline实例。它必须返回一个新的pipeline实例。 Crawler对象提供对所有Scrapy核心组件(如settings 和 signals)的访问;它是pipeline访问它们并将其功能挂钩到Scrapy中的一种方法。

    参数:

    • crawler(Crawler 对象) - 使用此pipeline的crawler

    实例很多,在官方文档看吧!   

    今天没有实例,另外 middlewears.py文件好像是和代理有关,后面遇到再学吧,下一天弄两例实例,实例学起来是最快的。

  • 相关阅读:
    SoapUI 使用笔记
    git 使用笔记(二)
    git 使用笔记(一)
    jquery 拓展
    hdu 1024 Max Sum Plus Plus (DP)
    hdu 2602 Bone Collector (01背包)
    hdu 1688 Sightseeing (最短路径)
    hdu 3191 How Many Paths Are There (次短路径数)
    hdu 2722 Here We Go(relians) Again (最短路径)
    hdu 1596 find the safest road (最短路径)
  • 原文地址:https://www.cnblogs.com/tlbjiayou/p/12618446.html
Copyright © 2011-2022 走看看