python爬虫的几种数据提取方式:正则 ,bs4,pyquery,xpath,cssselector。

一,正则

提取数据步骤:创建正则对象-->匹配查找-->提取数据保存

<html>
<div><a href='www.baidu.com'>正则</a></div>
<div>111111</div>
<div><a href='www.baidu1.com'>正则1</a></div>
<div>222222</div>
<div><a href='www.baidu2.com'>正则2</a></div>
<div>333333</div>
<div><a href='www.baidu3.com'>正则3</a></div>
<div>444444</div>
</html>

例:提取所有a标签的文本

pattern = re.compile(r'<a.*?>(.*?)</a>', re.S)

a_text = re.findall(pattern, html)

知识点:

findall 返回的结果是列表套元组的形式

而search一般要加group(), groups(),

re.S 可以将正则的搜索域不再是一行,而是整个HTML字符串

.*? 非贪婪匹配    .*贪婪匹配

二, Beautifulsoup

obj = BeautifulSoup(html, "lxml")

BeautifulSoup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象

知识点:

获得标签的某个属性:  .get()
获得标签内部的文字:  .string . strings .stripped_strings .get_text()
.string:  如果一个标签里面没有标签了,那么 .string 就会返回标签里面的内容。如果标签里面只有唯一的一个标签了,那么 .string 也会返回最里面的内容 
.strings: 获取多个内容,返回结果是生成器,需要遍历获取
 .stripped_strings输出的字符串中可能包含了很多空格或空行,使用 .stripped_strings可以去除多余空白内容
 通过css筛选元素: .select()
 .select():返回的是list
遍历文档树:

获取tag的子节点: .contents 返回的是list   .children返回的是listiterator object

PyQuery

Python爬虫常用的几种数据提取方式相关推荐

  1. python如何爬虫eps数据_Python爬虫常用的几种数据保存方式

    Python爬虫基本思路 txt: 1, open('文件名','读写模式'), f = open('csdn.txt','w', encodeing='utf-8') 2,f.write() 3,f ...

  2. Python爬虫之(七)数据提取-正则表达式

    提取数据 在前面我们已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式! 正则表达式是对字符串操作的一种逻辑公 ...

  3. Python爬虫之(八)数据提取-Beautiful Soup

    Beautiful Soup的简介 Beautiful Soup提供一些简单的.python式的函数用来处理导航.搜索.修改分析树等功能.它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单 ...

  4. Python爬虫入门(二)数据提取(lxml)

    XPath语法和lXml模块 什么是XPath? Xpath是一门在xml和html文档中查找信息的语言,可用来在xml和html文档中对元素和属性进行遍历 Xpath开发工具 chrome插件xpa ...

  5. Python爬虫之(九)数据提取-XPath

    介绍 之前 BeautifulSoup 的用法,这个已经是非常强大的库了,不过还有一些比较流行的解析库,例如 lxml,使用的是 Xpath 语法,同样是效率比较高的解析方法.如果大家对 Beauti ...

  6. 爬虫常用数据提取方式:正则、xpath、beautifulsoup

    文章目录 1.正则re 2.xpath 2.1 定位 2.1.1 xpath中选取节点的路径表达式 2.1.2 xpath谓语,即[ ]中的内容 2.1.3 选取未知节点 2.1.4 选择多个路径 2 ...

  7. python数据预处理的方法_python中常用的九种数据预处理方法

    python中常用的九种预处理方法分享 本文总结的是我们大家在python中常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍; 1. 标准化(Standardizat ...

  8. python爬网页数据用什么_初学者如何用“python爬虫”技术抓取网页数据?

    原标题:初学者如何用"python爬虫"技术抓取网页数据? 在当今社会,互联网上充斥着许多有用的数据.我们只需要耐心观察并添加一些技术手段即可获得大量有价值的数据.而这里的&quo ...

  9. 数据采集与清洗基础习题(二)Python爬虫常用模块,头歌参考答案

    数据采集习题参考答案,会持续更新,点个关注防丢失.为了方便查找,已按照头歌重新排版,朋友们按照头歌所属门类查找实训哦,该篇为Python爬虫常用模块. 创作不易,一键三连给博主一个支持呗. 文章目录 ...

最新文章

  1. springCloud学习笔记系列(1)-负载均衡Ribbon
  2. MySQL:给表的某个字段添加唯一性约束
  3. LTRIM、RTRIM和TRIM在ORACLE中的用法:
  4. 2010.7.29 模式对话框
  5. 三种安防监控摄像机供电方式,如何合理选择?
  6. python开源流程图软件_Dia
  7. linux 模拟运行 微信,Ubuntu 18.04 安装微信(Linux通用)
  8. python循环引用是什么_细说Python的循环调用、循环引用和循环导入
  9. snmp v3的安全配置 snmp认证与加密配置(53)
  10. RocketMQ报错 service not available now, maybe disk full, CL: 0.95 CQ: 0.95 INDEX: 0.95, maybe
  11. canvas.clipPath canvas.clipRect() 无效的原因
  12. Spark:一个独立应用
  13. hackintosh黑苹果_如何构建用于编码的Hackintosh
  14. 柯美smb扫描出现服务器连接错误_为什么震旦复印机扫描提示错误扫描SMB跳ED09C7?...
  15. learning rate对深度模型的影响:论文阅读Cyclical Learning Rates for Training Neural Networks
  16. 23 DesignPatterns学习笔记:C++语言实现 --- 1.2 AbstractFactory
  17. 守护进程(Daemon process)
  18. 网站SEO的关键词怎么优化 网优谷告诉你
  19. wx.showToast()内容换行
  20. 计算机在护理专业中的论文题目,护理论文题目有哪些

热门文章

  1. ddr3ip核心_DDR3(2):IP核初始化
  2. KeepAlive详解
  3. 迈拓水表接线及修改modbus地址
  4. 单片机课设:病床呼叫系统
  5. Java内嵌数据库Derby 语法(3)
  6. 绩效评估:定义,目标,过程,方法,优缺点
  7. Xamarin.Android set cornerRadius by code
  8. 韩国wargame v2.0的一些writeup
  9. ET420服务器安装系统,浅谈新入 Latitude E6440
  10. python+opencv:边缘提取-Sobel operator