千家信息网

Python中关于数据采集和解析是怎样的

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇文章为大家展示了Python中关于数据采集和解析是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我们已经了解到了开发一个爬虫需要做的工作以及一些常见
千家信息网最后更新 2026年11月04日Python中关于数据采集和解析是怎样的

本篇文章为大家展示了Python中关于数据采集和解析是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

我们已经了解到了开发一个爬虫需要做的工作以及一些常见的问题,下面我们给出一个爬虫开发相关技术的清单以及这些技术涉及到的标准库和第三方库,稍后我们会一一介绍这些内容。

  1. 下载数据 - urllib / requests / aiohttp。

  2. 解析数据 - re / lxml / beautifulsoup4 / pyquery。

  3. 缓存和持久化 - pymysql / sqlalchemy / peewee/ redis / pymongo。

  4. 生成数字签名 - hashlib。

  5. 序列化和压缩 - pickle / json / zlib。

  6. 调度器 - 多进程(multiprocessing) / 多线程(threading)。

HTML页面

  Home    

Yoko's Kitchen

Bok Choi
Bok Choi

Japanese Vegetarian

Five week course in London

A five week introduction to traditional Japanese vegetarian meals, teaching you a selection of rice and noodle dishes.

Teriyaki sauce
Teriyaki Sauce

Sauces Masterclass

One day workshop

An intensive one-day course looking at how to create the most delicious sauces for use in a range of Japanese cookery.

© 2011 Yoko's Kitchen

如果你对上面的代码并不感到陌生,那么你一定知道HTML页面通常由三部分构成,分别是用来承载内容的Tag(标签)、负责渲染页面的CSS(层叠样式表)以及控制交互式行为的JavaScript。通常,我们可以在浏览器的右键菜单中通过"查看网页源代码"的方式获取网页的代码并了解页面的结构;当然,我们也可以通过浏览器提供的开发人员工具来了解更多的信息。

使用requests获取页面

  1. GET请求和POST请求。

  2. URL参数和请求头。

  3. 复杂的POST请求(文件上传)。

  4. 操作Cookie。

  5. 设置代理服务器。

【说明】:关于requests的详细用法可以参考它的官方文档。

页面解析

几种解析方式的比较

说明:BeautifulSoup可选的解析器包括:Python标准库(html.parser)、lxml的HTML解析器、lxml的XML解析器和html5lib。

使用正则表达式解析页面

如果你对正则表达式没有任何的概念,那么推荐先阅读《正则表达式30分钟入门教程》,然后再阅读我们之前讲解在Python中如何使用正则表达式一文。

XPath解析和lxml

XPath是在XML文档中查找信息的一种语法,它使用路径表达式来选取XML文档中的节点或者节点集。这里所说的XPath节点包括元素、属性、文本、命名空间、处理指令、注释、根节点等。

  Harry Potter 29.99   Learning XML 39.95 

对于上面的XML文件,我们可以用如下所示的XPath语法获取文档中的节点。

在使用XPath语法时,还可以使用XPath中的谓词。

XPath还支持通配符用法,如下所示。

如果要选取多个节点,可以使用如下所示的方法。

【说明】:上面的例子来自于菜鸟教程网站上XPath教程,有兴趣的读者可以自行阅读原文。

当然,如果不理解或者不太熟悉XPath语法,可以在Chrome浏览器中按照如下所示的方法查看元素的XPath语法。

BeautifulSoup的使用

BeautifulSoup是一个可以从HTML或XML文件中提取数据的Python库。它能够通过你喜欢的转换器实现惯用的文档导航、查找、修改文档的方式。

1.遍历文档树

  • 获取标签

  • 获取标签属性

  • 获取标签内容

  • 获取子(孙)节点

  • 获取父节点/祖先节点

  • 获取兄弟节点

2.搜索树节点

  • find / find_all

  • select_one / select

【说明】:更多内容可以参考BeautifulSoup的官方文档。

PyQuery的使用

pyquery相当于jQuery的Python实现,可以用于解析HTML网页。

实例 - 获取知乎发现上的问题链接

from urllib.parse import urljoinimport reimport requestsfrom bs4 import BeautifulSoupdef main(): headers = {'user-agent': 'Baiduspider'} proxies = { 'http': 'http://122.114.31.177:808' } base_url = 'https://www.zhihu.com/' seed_url = urljoin(base_url, 'explore') resp = requests.get(seed_url, headers=headers, proxies=proxies) soup = BeautifulSoup(resp.text, 'lxml') href_regex = re.compile(r'^/question') link_set = set() for a_tag in soup.find_all('a', {'href': href_regex}): if 'href' in a_tag.attrs: href = a_tag.attrs['href'] full_url = urljoin(base_url, href) link_set.add(full_url) print('Total %d question pages found.' % len(link_set))if __name__ == '__main__': main()

上述内容就是Python中关于数据采集和解析是怎样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

节点 文档 页面 内容 数据 表达式 语法 代码 标签 正则 教程 文件 方式 更多 浏览器 网页 面的 开发 浏览 数据采集 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网络科技 中智农互联网科技 广东猪兼强互联网科技有限公司 科技股互联网 麻工互联网科技 成都狮子座互联网科技 中国最先进互联网科技公司 天速互联网络科技有限公司 深圳国际航运科技和互联网 字节跳动和互联网科技 栖莱科技互联网股份有限公司 电子科技大学互联网创业大赛 科技类公司包括互联网吗 中科明德北京互联网科技 国大互联网教育科技有限公司薪资 中国互联网有什么科技 中国互联网公司的科技投入 黑龙江互联网科技公司 重庆科技产业互联网有哪些 六子台科技互联网展会 天津市摩尔互联网科技 互联网是第几次科技革命的成果 期待互联网科技 海南购全球互联网科技 互联网巨头投资的硬核科技 天速互联网络科技有限公司 上海宁丞科技互联网 互联网科技公司有风险吗 悟空问答互联网科技 互联网科技创业有什么好项目
0