爬虫解析网页的几种方式

1. Python 正则

re.match

从字符串起始位置匹配一个模式,如果从起始位置匹配不了,match()就返回none

语法格式:

import re
m = re.match(pattern, string, flags=0)
# flags用来控制匹配方式,如是否区分大小写,多行匹配等
print('结果:', m)
print('起始与终点:', m.span())
print('匹配的起始位置:', m.start())
print('匹配的终点位置:', m.end())

# pattern为正则表达式
print('匹配的整句话:',m.group(0))
print('匹配的第一个结果:',m.group(1))
print('匹配的第二个结果:',m.group(2))
print('匹配的结果列表:',m.groups())

(.*) 贪婪匹配

(.*?) 非贪婪匹配

正则表达式前加 r : 表示原生字符串,不会转义

否则需要转义

re.search()

扫描正字字符串并返回第一个成功的匹配

其他方面与match一样

re.findall()

findall可以找到所有的匹配,并以列表的形式返回

2. BeautifulSoup库

bs4 官方文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html

3. XPath

表达式描述
nodename选取所有的nodename子节点
/从根节点选取
//从任意位置匹配
.选取当前节点
选取父节点
@选取属性
text()选取文本
*通配符,不包括文本,注释
@*选择所有属性
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python中,有几种常用的方法可以解析HTML内容。其中,最常见的方法是使用BeautifulSoup库和lxml的XPath表达式。另外,还可以使用requests-html库和正则表达式来解析HTML。 使用BeautifulSoup库可以方便地从HTML文档中提取出需要的信息。该库提供了一些方便的方法和函数,可以根据标签、类名、属性等来查找和提取元素。同时,BeautifulSoup还能够自动修复不完整的HTML代码,使其能够正确解析。 另一种常用的方法是使用lxml库的XPath表达式。XPath是一种强大的查询语言,可以通过节点关系和属性来定位和提取HTML元素。lxml库是一个高性能的XML和HTML处理库,使用XPath可以更加灵活和精确地提取需要的数据。 另外,如果你对JavaScript渲染的网页感兴趣,可以使用requests-html库。该库提供了一个简单而强大的API,可以模拟浏览器行为,执行JavaScript代码,并从渲染后的HTML中提取数据。 最后,如果你熟悉正则表达式,也可以使用正则表达式来解析HTML。正则表达式是一种强大的模式匹配工具,可以根据特定的规则提取出需要的数据。但是需要注意的是,使用正则表达式解析复杂的HTML可能会比较困难和容易出错,因此在处理复杂的HTML时,推荐使用BeautifulSoup或lxml。 综上所述,python爬虫解析HTML的四种方法包括使用BeautifulSoup库、lxml的XPath表达式、requests-html库和正则表达式。根据具体的需求和个人的熟悉程度,可以选择适合自己的方法进行解析

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值