zoukankan      html  css  js  c++  java
  • 爬虫 --聚焦爬虫篇

    聚焦爬虫介绍

    1.编码流程

    • 指定url
    • 发起请求
    • 获取响应数据
    • 数据解析
    • 持久化存储

    聚焦爬虫详情

    - 如何实现数据解析?

    • 正则
    • bs4
    • xpath

    - 数据解析的原理

    • 实现标签定位

    • 将标签存储的文本内容或者相关属性值进行提取

    - bs4数据解析

    1.环境准备
       - pin install bs4
       - pip install lxml
    2.bs4解析原理
        - 实例化一个Beautiful Soup对象,必须将即将被解析的页面源码加载到该实例化对象中
        - 调用该对象中相关的属性或者方法进行标签的定位和内容的提取
    
    3.如何实例化一个BeautifulSoup对象
        - 本地加载:  soup = BeautifulSoup(fp,'lxml')
        - 网络加载:  soup = BeautifulSoup(page_text,'lxml')
    4.相关的属性和方法
    - soup.tagName -->可以定位标签,定位源码中第一次出现的标签,返回的永远是一个单数
    - soup.find() --->基于属性定位实现的标签定位
    - soup.find_all() --->基于属性定位实现的所有标签定位,返回一个列表
    - 取文本:
    - string : 取得标签中直系的文本内容
    - text/get_text() :取得的是标签下的所有内容
    - 取属性:
    - tag['attrName'] #此种方式
    
    -select: 使用选择器定位标签 返回的是列表
    - 标签,类,id选择器 select('选择器')
    - 层级选择器
    - 单层级 '.tang>ul>li' 
    - 多层级 '.tang li'

    - xpath数据解析

    1.特点:通用性比较强
    
    2.环境安装: pip install lxml
    
    3.解析原理:
    
      - 实例化一个etree对象,且将解析页面源码加载到该对象中
      - 使用该对象中xpath方法接合xpath表达式进行标签定位和数据解析提取
    4.etree对象实例化   - 本地加载: tree = etree.parse("file_path")   - 网络加载 tree = etree.HTML(page_text)
    5.相关的属性和方法
    #常用的xpath的表达式:基于标签的层级实现定位
    
        - /:从跟标签开始实现层级定位
        - //:从任意位置实现标签定位
        - 属性定位: //tag[@class="name"]
        - 索引定位: //div[@class="name"]//li[5]
        - 取文本:
            -取得直系文本内容:/text()
            -取得所有文本内容://text()
        - 取属性:/@attrName

     

  • 相关阅读:
    java内联函数
    jvm垃圾回收
    jvm内存管理
    java进程和线程的区别
    jvm
    简单易学的SSM(Spring+SpringMVC+MyBatis)整合
    Spring之声明式事务
    SpringMVC知识点小结
    Servlet之文件的上传与下载
    java使用字节流和字符流实现文件复制
  • 原文地址:https://www.cnblogs.com/CrazySheldon1/p/10795341.html
Copyright © 2011-2022 走看看