[ python] 爬虫笔记(五) 数据解析之xpath解析

聚焦爬虫

爬取页面中指定的内容
编码流程:
指定url——发起请求——获取响应数据——数据解析——进行持久化存储

数据解析分类

  • 正则匹配
  • bs4
  • xpath

数据解析原理
在这里插入图片描述

xpath解析:

  • 最常用且最便捷高效的一种解析方式
  • 实例化一个etree对象,并且将页面源码数据加载到该对象中
  • 通过调用etree对象中相关属性方法结合xpath表达式进行标签定位和数据捕获

首先
pip install lxml
from lxml import etree
在这里插入图片描述

  • xpath(‘xpath表达式’)
    • tree = etree.parse(‘html’)
    • tree.xpath(’/html/head/title’)
      • /为从根节点开始定位,一个层级,//为多个层级,可以表示从任意位置开始定位
      • r = tree.xpath(’//div[@class=“sh”]/p[3]’) 属性定位 tag[@attrName=“attrValue”]
      • 获取文本,/text() //text()
      • 取属性值——/@属性名称 < img src = “baidu.com”> —— /img/@scr
 
from lxml import etree
import requests

if __name__ == "__main__":
    url = 'https://sh.58.com/ershoufang/'

    ua = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4209.400"
    headers = {
    
    
        "User-Agent":ua,
    }

    response1 = requests.get(url=url,headers=headers).text

    tree = etree.HTML(response1)
    li_list = tree.xpath('/html/body/div[5]/div[5]/div[1]/ul/li')
    for li in li_list:
        print(li.xpath('./div[2]/h2/a/text()'))

猜你喜欢

转载自blog.csdn.net/Sgmple/article/details/112059825