【Python爬虫】 lxml 与 Beautiful Soup 解析网页代码的不同方式

1. 使用 lxml 解析

(1). 首先,使用 lxml 做解析时需要先安装 lxml 库,并且用于解析的方法在 lxml 库中的 etree 类中,所以在使用时我们引入的是:

from lxml import etree

(2). 在实际解析时的操作为,如下所示:

# response.text 为响应的网页源码内容
content = etree.HTML(response.text)

(3). 在实际获取某一部分元素内容时,先获取到元素的 xpath,然后将 xpath 值放到 content.xpath() 的括号 中,如下所示:

(xpath的获取方式请看 【Python爬虫】 XPath 与 selector 的 获取_xpath selector_zhouwhui椆的博客-CSDN博客

name = content.xpath("/html/body/div[3]/div[1]/div[6]/div[1]/div[1]/div/div[1]/h2/a/text()")

就可获取到指定元素的内容

2. 使用 Beautiful Soup 进行解析

(1). 同样的在使用前,我们要先安装好相对应的库,在安装时,实际安装的是 bs4 库,原因是因为Beautiful Soup库是被集成在 bs4 库中,所以在安装时要安装 bs4 库,同时,再安装上述提到的 lxml 库,引入Beautiful Soup的方法如下:

(也可以不安装 lxml ,若不安装 lxml 库,那么Beautiful Soup就会使用Python 默认的解析器。尽管Beautiful Soup既支持 Python 标准库中的 HTML 解析器有支持一些第三方解析器,但是 lxml 库具有功能更强大、速度更快的特点,所以建议安装 lxml 库)

from bs4 import BeautifulSoup

(2). 在实际解析时的操作为,如下所示:

# response.text 为响应的网页源码内容
content = BeautifulSoup(response.text, 'lxml')

(3). 在实际获取某一部分元素内容时,先获取到元素的 Selector,然后将 Selector 值放到 content.select() 的括号 中,如下所示:

(selector  获取方式请看 【Python爬虫】 XPath 与 selector 的 获取_xpath selector_zhouwhui椆的博客-CSDN博客

name = content.select("body > div.mainbox > div.main > div.mianContent.clearfix > div.left > div.items > div:nth-child(1) > div.item1 > h2 > a")

此时获取到的是元素内容的整段 html 代码,由于在获取时可以获取一个元素或同时获取多个元素,所以最终的结果是一个列表形式,同时还需根据实际要获取的内容进一步获取:

for item in name:
    # 获取文本内容(html标签包裹的内容,如此代码中的xxxx:<a>xxxx</a>)
    item.get_text()
    # 获取 html 标签的属性内容(如代码中的xxxx: <a href="xxxx"></a>)
    item.get('href') # 括号中的值就是属性名称

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhouwhui椆

这是一个你请我恰饭的机会呀!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值