首页 > 其他 > 详细

爬虫 --聚焦爬虫篇

时间:2019-04-30 13:40:17      阅读:150      评论:0      收藏:0      [点我收藏+]

聚焦爬虫介绍

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!