爬虫 --聚焦爬虫篇

聚焦爬虫介绍

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

 

原文地址:https://www.cnblogs.com/CrazySheldon1/p/10795341.html