Python 爬虫 BS4扩展包的问题请教

使用BS4的扩展包

在用find_all的时候,怎么像find后面追加用text.strip()取值?

a = request.get(xxxxx)
soup_base = BeautifulSoup(a, "html.parser")
c = soup_base.find_all(class_='xxxx')

在用find 的时候

soup_base.find(class_='xxxx').text.strip()

可以取值。但是find_all就会提示报错
有什么方法find_all可以取值吗?
for 去遍历也太麻烦了,谢谢

阅读 2.9k
2 个回答

不用正常的循环,可以使用列表推导式(或者改成生成器推导式也可以,看你的需求):

c = [x.text.strip() for x in soup_base.find_all(class_='xxxx')]

如果需要把这些存在列表中的text拼成一个字符串,就再join一下就好了

c = ''.join(c)

find_all返回的是一个list
list肯定是没有text属性的,你除了循环,别无他法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题