【Python】BeautifulSoup解析HTML时,字符串文本成空白的行怎么办?

我们在用爬虫解析html源码的时候,如果遇到有空白内容的节点,正常需要的部分呢,又找不到节点,如下图所示:

在这里插入图片描述
放大图是这样的:

在这里插入图片描述
如果我想获取上面的文字段落,就无法直接通过定位节点的方式获取text。

解决办法:

可以直接获取上一级可以获取的节点,例如上面的例子是获取到'id': 'zb_price_cont' 这个节点,然后把该节点下的所有文本用strings获取下来,然后用list进行分段。

(如果不用list装起来,所有文本会成段,不好分割文本)

import requests
from bs4 import BeautifulSoup

url="WWW.xxx.com"
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36'}
response = requests.get(url, headers=headers)#一定要有headers
page_soup= BeautifulSoup(response.text, 'lxml')

# 用一个list(节点.strings) 就可以直接获取得到
words=list(page_soup.find('div', {'id': 'zb_price_cont'}).strings)
print(words)

结果就可以获得含有我们需要的内容的文本啦!

当然这个list里面含有【 空白的行 】和 【文本】。如果想要去掉空白部分,就需要遍历list,判断是不是len()==0, 是的部分去除就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值