Python爬虫基础教程(二)

八、数据提取

8.1概念:数据提取就是从响应中获取我们想要的数据的过程

8.2分类:

        1.非结构化的数据:html等

           处理方法:正则表达式,xpath

        2.结构化数据:json、xml等

           处理方法:转化为Python数据类型

8.3数据提取之json:

        1.概念:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。

                    同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。

        2.如何找到返回json的url:使用chrome切换到手机页面

        3.json的转换图示:

                    

            注意:具有read()或者write()方法的对象就是类文件对象

                       f = open(“a.txt”,”r”) f就是类文件对象

8.4使用retrying包对程序进行多次执行:

            1.安装:pip install retrying

            2.使用方法:@retry(stop_max_attempt_number=3) 

                                装饰器格式,设置最大重试次数

8.5豆瓣爬虫实例:

        

          

            

8.6正则表达式

     1.概念:用事先定义好的一些特定字符、及这些特定字符的组合,

                  组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑。

     2.常用正则表达式的方法:

                  re.compile(编译)

                  pattern.match(从头找一个)

                  pattern.search(找一个)

                  pattern.findall(找所有)

                  pattern.sub(替换)

    3.正则表达式的规则:

                 

     4.原始字符串r的使用:

                a.原始字符串定义(raw string):所有的字符串都是直接按照字面的意思来使用,

                   没有转义特殊或不能打印的字符,原始字符串往往针对特殊字符而言。

                b.使用示例:

                        

8.7内涵段子爬虫实例:

   

        

     

8.8 XPATH和LXML类库

      1.为什么要学习XPATH和LXML类库:

                lxml是一款高性能的 Python HTML/XML 解析器,

                我们可以利用XPath,来快速的定位特定元素以及获取节点信息

      2.什么是XPATH:

                XPath (XML Path Language) 是一门在 HTML\XML 文档中查找信息的语言,

                可用来在 HTML\XML 文档中对元素和属性进行遍历。

     3.XML和HTML的概念:

                

    4.XML的节点关系:

                

    5.XPATH的节点选择工具:

             1.Chrome插件 XPath Helper

             2.开源的XPath表达式编辑工具,XMLQuire(XML格式文件可用) 

             3.Firefox插件 XPath Checker

    6.XPATH节点选择语法:

             a.通用语法如下图所示:

           

            b.查找某个特定的节点或者包含某个指定的值的节点语法如下图:

            c.选择未知节点语法如下图:

        

            d.选取若干路径语法如下:

    7.lxml库的使用:

            a.初步使用:

               导入lxml的etree库:

                        from lxml import etree 

               利用etree.HTML,将字符串转化为Element对象,Element对象具有xpath的方法:     

                        html = etree.HTML(text)

               注意:lxml 可以自动修正 html 代码

    8.贴吧爬虫实例,爬取某个贴吧所有帖子的标题和图片      

 

     

    

    

猜你喜欢

转载自blog.csdn.net/qq_40652101/article/details/90605170
今日推荐