美文网首页老孙说Python
Python爬虫第八天:ScrapyShell|yield it

Python爬虫第八天:ScrapyShell|yield it

作者: 老孙说IT | 来源:发表于2018-10-06 13:57 被阅读215次

    内容简述:     

        一: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

    相关文章

      网友评论

        本文标题:Python爬虫第八天:ScrapyShell|yield it

        本文链接:https://www.haomeiwen.com/subject/pzkhaftx.html