爬虫笔记3 XPATH LXML寻找XML,HTML

掌握re库(正则表达式)的用法

  • re.findall("a(.*?)b",”str“)能够返回括号中的内容,括号前后的内容起到定位和过滤的效果
  • 原始字符串r,使用r可以忽视反斜杠带来的转义的效果
  • .默认匹配不到\n
  • \s能够匹配空白字符,不仅仅包含空格,还有\t \r \n
  • 万能的.*?用法

XPATH

Xpath是一门在HTML\XML文档中查找信息的语音,可以用来在HTML\XML文档中对元素属性进行遍历
W3SCHOOL文档:https://www.w3school.com.cn/xpath/index.asp

  • 获取文本
    • a/text() 获取a下的文本
    • a//text() 获取a下的所有文本
    • //a[text()=‘下一页’] 选择文本为’下一页‘的a标签
  • 获取属性@符号
    • @href
    • //ul[@id="detail-list"]
  • //
    • 在xpath开始的时候表示从当前html中任意位置开始选择
    • li/a表示在li下面所有的a

lxml库

  • 使用入门
    • 导入lxml的etree库,from lxml import etree
    • 利用etree.HTML,将字符串转化为Element对象
    • Element对象具有xpath的方法html=etree.HTML(text)
    • ’etree.xpath(“输入xpath代码”)‘
    • lxml可以自动修正html代码
  • 提取页面数据思路
    • 先分组,取到一个包含分组标签的列表
    • 遍历,取其中每一个组进行数据的提取,不会造成数据对应错乱
#查看element对象中包含的字符串
etree.tostring(html).decode()

你可能感兴趣的:(爬虫)