Python爬虫第八天:ScrapyShell|yield item和请求传参

内容简述:     

    一:Scrapy Shell     

    二:yield item和请求     

    三:请求传参-高级请求

一:Scrapy Shell

        运行在终端的工具,用来调试scrapy。可以在未启动spider的情况下尝试及调试代码,也可以用来测试XPath或CSS表达式。

        简单使用—糗事百科

        scrapy shell  “http://www.baidu.com/

      【温馨提示】:当咱们有时加载https请求时,有可能会报错

        问题描述:[<twisted.python.failure.Failure twisted.internet.error.ConnectionDone:                                        Connection was closed cleanly.>]

        解决方案:

                第一步: scrapy shell -s USER_AGENT='Mozilla/5.0'

                第二步:fetch(‘url’)

        示例参考: fetch("https://www.qiushibaike.com")

 A-response对象

      属性

          text:字符串格式的html   body:二进制格式的html     encoding:响应编码

          url:所请求的url              status:响应状态码              headers:响应头

      方法:

         xpath():据xpath获取所有selector对象(scrapy内部封装的一个类的对象)的列表

                例:获取糗事百科用户名

                name_list=response.xpath('//div[@class="author clearfix"]//img/@alt')

                print(len(name_list))               print(name_list.extract())

                print(name_list.extract()[0])    print(name_list.extract_first())     

          css():获取符合要求的所有selector对象的列表

                 获取内容

                      name_list=response.css('#content-left a > h2::text')接着extract()

                 获取属性

                     css_list=response.css('#content-left a > img::attr(src)')接着extract()

                  一般不使用,因为中间scrapy会将这个选择器给翻译成xpath再去解析

         selector对象

                xpath('./'):从当前节点向下开始查找

                css():和上面的response的方式一样

                extract():将对象转化为unicode字符串

                extract_first():如果xpath获取不到内容extract_first()返回None,extract()报错

   B-Item对象

              类字典对象,用法和字典一样,将这个对象转化为字典 stu = dict(stu)

二: yield item和请求

        校花网  http://www.xiaohuar.com/hua/

        管道的后期处理:数据的存储|下载

      【温馨提示】写好pipeline的时候,需要在settings文件中打开一个配置

        ITEM_PIPELINES = { 'huaproject.pipelines.HuaprojectPipeline':300,  }

        第一个:处理的管道

        第二个:优先级,越小优先级越高(0-1000)


        多页面抓取及图片批量下载

        url规律

               第一页list-1-0.html

               第二页list-1-1.html

               第n页list-1-(n-1).html

三:请求传参【高级请求】

             如果一个页面不能将一个item的所有信息全部拿到,需要再次发送请求,再次解析才能将item的所有信息拿到。这种情况怎么办?

          电影天堂  http://www.ygdy8.net/html/gndy/dyzz/index.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • scrapy学习笔记(有示例版) 我的博客 scrapy学习笔记1.使用scrapy1.1创建工程1.2创建爬虫模...
    陈思煜阅读 14,370评论 4 46
  • scrapy是python最有名的爬虫框架之一,可以很方便的进行web抓取,并且提供了很强的定制型,这里记录简单学...
    bomo阅读 6,516评论 1 11
  • 人生为何不快乐,只因未读苏东坡。读完依旧不快乐,那就多读几遍。拿起搁置床头已久的林语堂先生的《苏东坡传》,对此更加...
    小团圆子阅读 2,187评论 0 1
  • 我现在经常告诫学生们,让他们少玩些游戏,但回头想想,自己也曾经有一段时间很喜欢游戏,虽不沉迷,但有时间就想玩儿几局...
    蜗牛十年阅读 2,939评论 0 2
  • 2017/03/08【打卡】 12#顾敏第307天1.记录✅三八节,我积极主动和领导汇报,争取到福利,带着办公室5...
    Grit888阅读 682评论 0 0