96SEO 2026-02-20 10:44 0
常用正则爬虫将数据爬取到后并不是全部的数据都能用我们只需要截取里面的一些数据来用这也就是解析爬取到的信息在解析方面我们常用的手段有三个Xpathjsonpath以及BeautifulSoup接下来我将对其分别进行介绍。

Chrome有Xpath的插件可以在应用商店里面下载一个而Python中使用Xpath解析的话需要安装
语句含义//查找所有子孙结点忽略层级/只查找子结点选取属性..选取当前节点的父节点*通配符[]选取子元素如
tree.xpath(//a[title编程帮]/text())
tree.xpath(//a[starts-with(title,
找到ul下所有的a标签中title淘宝或id1的标签的爷爷结点的id
tree.xpath(//a[starts-with(title,
接下来我们讲讲最开始安装的Xpath的插件有什么作用。
在这里我们以百度首页为例按下
字样那我们就可以在黑框中输入我们的Xpath查询语句黑框右边就会出现语句查询得到的结果非常实用。
当然如果你不想这样看得眼花缭乱的去写Xpath也行只需要在F12开发者模式下右击你想要查询的元素选择复制Xpath即可如下图所示实际上我们一般选择的是这种方法虽然有的时候复制的并不是最简的Xpath语法但是这确实有效。
jsonpath使用前必须安装jsonpath的包jsonpath
是参照xpath表达式来解析xml文档的方式jsonpath的入门可以参考这篇文章在这里我将主要的点进行一下说明。
学会了Xpath的语法那么jsonpath的语法其实可以对照着进行学习。
[]子元素…父元素//…递归下降JSONPath是从E4X借鉴的。
**通配符表示所有的元素属性访问字符[][]子元素操作符|[,]逻辑或。
jsonpath允许name或者
}XPathJSONPath结果/store/book/author$.store.book[*].author书点所有书的作者//author$..author所有的作者/store/*$.store.*store的所有元素。
所有的bookst和bicycle/store//price$.store..pricestore里面所有东西的price//book[3]$..book[2]第三个书//book[last()]$..book[(.length-1)]最后一本书//book[position()
$..book[:2]前面的两本书。
//book[isbn]$..book[?(.isbn)]过滤出所有的包含isbn的书。
//book[price10]$..book[?(.price10)]过滤出价格低于10的书。
//*$..*所有元素。
相对来说更慢一些但是使用方法简单了不少。
这里将BeautifulSoup
标签并将标签属性以字典列出soup.a.get_text()找到第一个
的标签soup.select(a[class])找到全部的拥有
标签soup.select(a[classname1])找到全部的
最后我们来讲一讲正则表达式。
爬虫解析数据中最出名的当属正则表达式了但是正则表达式并不是仅仅在爬虫中才有使用很多的搜索功能或者筛选功能都支持正则表达式。
聊到Python正则表达式的支持首先肯定会想到re库这是一个Python处理文本的标准库下面我就来详细讲讲re库的使用。
正则表达式中存在这一些特殊符号这些符号的使用能够带来不同的匹配作用介绍如下
\?。
^匹配输入字符串的开始位置在方括号表达式中使用时表示不接受该字符集合。
要匹配
\$。
\转义字符。
将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。
|关系符号“或”。
指明两项之间的一个选择。
要匹配
正则表达式中还存在一些以转义字符开头的特殊字符这些符号也能表示一些匹配的规则。
模式描述\d匹配数字:[0-9]\D匹配非数字\s匹配任何空白字符\S匹配非空白字符\w匹配字母数字及下划线\W匹配非字母数字及下划线\A仅匹配字符串开头同^\Z仅匹配字符串结尾同$\b匹配一个单词边界也就是指单词和空格间的位置。
例如
的开始和结束位置。
子表达式可以获取供以后使用。
要匹配这些字符请使用
尝试从字符串的起始位置匹配一个模式如果不是起始位置匹配成功的话match()
print(re.search结果{}.format(re.search(pattern,
print(re.match结果{}.format(re.match(pattern,
函数用于编译正则表达式生成一个正则表达式(Pattern)对象供
print(匹配结果{}.format(m.group()))
print(替换结果{}.format(re.sub(香克斯,
在字符串中找到正则表达式所匹配的所有子串并返回一个列表如果有多个匹配模式则返回元组列表如果没有找到匹配的则返回空列表。
print(切分结果{}.format(re.split(香克斯.,
…])获得一个或多个分组匹配的字符串当要获得整个匹配的子串时可直接使用
group(0)start([group])获取分组匹配的子串在整个字符串中的起始位置end([group])获取分组匹配的子串在整个字符串中的结束位置span([group])方法返回
正则表达式中常用的匹配策略有四种可以在各函数的flag中进行模式指定。
print(默认情况{}.format(pattern1.findall(s)))
print(改变后为{}.format(pattern2.findall(s)))输出结果为
print(默认情况{}.format(pattern1.findall(s)))
print(改变后为{}.format(pattern2.findall(s)))输出结果为
匹配所有包括换行符\n。
默认模式下.是不能匹配行符\n的。
示例如下
print(默认情况{}.format(pattern1.findall(s)))
print(改变后为{}.format(pattern2.findall(s)))输出结果为
标志。
多行模式当某字符串中有换行符\n默认模式下是不支持换行符特性的影响
print(默认情况{}.format(pattern1.findall(s)))
print(改变后为{}.format(pattern2.findall(s)))输出结果为
标志。
详细模式可以在正则表达式中加注解会忽略正则表达式中的空格和
print(默认情况{}.format(pattern1.findall(s)))
print(改变后为{}.format(pattern2.findall(s)))输出结果为
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback