欢迎光临
我们一直在努力

爬虫解析网页,正则表达式与XPath简单运用

正则表达式(Regular Expressions)

  • 什么是正则表达式:

    可以直接理解为使用单个字符串来描述、匹配一系列符合某个句法规则的字符串

  • 使用方法和遵守规则

    1,限定符 (特殊字符)

            ? :代表其前一个字符出现0次或一次

                    如图字符c后加个?,表示其可有可无。

            * :代表匹配0个或多个字符

                  如图字符b后加个*,表示b可以出现0次或多次

            +:匹配出现一次及以上的字符

                  如图将字符*换成+后,b可以匹配出现一次或多次

            {}:可表示字符出现次数

                  希望字符出现2到6次,可写成{2,6}

                  希望字符出现2次以上,可写成{2,}

2,“或”运算符

            | :表示或运算

                 如图字符要么匹配pen要么匹配heal

               记得要加()否则会出现下图,要么匹配a pen要么匹配heal 

3,字符类

              ^:匹配除了^后列出的【以外】的字符

            【】:方括号里表示要匹配的字符。且可匹配范围,【a-z】代表所有小写英文字符,【a-zA-Z】代表所有英文字符,【a-zA-Z0-9】代表所有英文字符和数字

                       如图匹配了除数字外的所有字符

4,元字符

            \\d    匹配一个数字字符。等价于 [0-9]。

            \\D    匹配一个非数字字符。等价于 [^0-9]

            \\f    匹配一个换页符。

            \\n    匹配一个换行符。

            \\r    匹配一个回车符。

            \\s    匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \\f\\n\\r\\t\\v]。

            \\S    匹配任何非空白字符。等价于 [^ \\f\\n\\r\\t\\v]。

           .      匹配任意字符

           更多的元字符可参考这篇文章

贪婪匹配与懒惰匹配

贪婪匹配:.+

懒惰匹配:.+?

实例:匹配ip地址

由于.为元字符,所以用\\转译

有需要的朋友可以使用

XPath(XML Path Language)

  • 基础语法

              /:从根节点选取。/html 表示从 HTML 文档的根节点 <html> 开始选取,它是一个绝对路径表达式 。

              //:从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。//div 可以选取文档中所有的 <div> 元素节点。

  • 属性定位

             想找到class属性值为lay-out的div标签: //div[@class="lay-out"]

  • 层级或索引定位

             找到class属性值为lay的div的直系子标签ul下的第三个子标签li下的直系子标签a:               //div[@class="tang"]/ul/li[3]/a

  • 逻辑运算

              找到href属性值为空且class属性值为fa的a标签 //a[@href="" and @class="fa"]

  • 模糊匹配

              找到class属性值中包含da的div标签://div[contains(@class, "da")]

  • 取文本

              /表示获取某个标签下的文本内容 :

             //div[@class="fa"]/p[3]/text()

             //表示获取某个标签下的文本内容和所有子标签下的文本内容:

             //div[@class="fa"]//text()

  • 取属性

             取到class属性值为fa的div下的第二个子标签li下的直系子标签a 中的href值:

             //div[@class="fa"]//li[2]/a/@href

浏览器可直接获取xpath路径:在爬取网站页面f12,右键你想获取的标签选择复制xpath即可

赞(0)
未经允许不得转载:171主机测评 » 爬虫解析网页,正则表达式与XPath简单运用
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址