【问题标题】:Join BeautifulSoup Contents with map and lambda使用 map 和 lambda 加入 BeautifulSoup Contents
【发布时间】:2021-05-18 19:13:53
【问题描述】:

我想抓取网页内容并清理格式

from bs4 import BeautifulSoup
import urllib.request
import urllib.parse
import lxml
url='https://en.wikipedia.org/wiki/Deep_learning'
page=urllib.request.urlopen(url)
soup=BeautifulSoup(page,"lxml")
fetched_text=' '.join(map(lambda p: p.text.soup.find_all('p'),soup))

它有如下错误:

此代码最初是从这样的 youtube 教程中找到的:

fetched_text=' '.join(map(lambda p: p.text.soup.find_all('p')))

但是有人抱怨 map() 没有正确使用。

谁能帮帮我?

【问题讨论】:

  • [x.text for x in soup.select('p')]

标签: python beautifulsoup urllib


【解决方案1】:

也许你使用列表理解更舒服:

fetched_text=' '.join([p.text for p in soup.find_all('p')])

或者你可以用 map 来做,记住 map 等待一个函数和一个迭代:

fetched_text=' '.join(map(lambda p: p.text, soup.find_all('p')))

【讨论】:

  • 这是有效的。太感谢了!只是好奇,如果我确实想使用 lambda 和 map,这段代码应该是什么样子?我仍然在学习。感谢您的帮助!
  • 我用地图添加了示例
  • 请记住,您可以将问题标记为已解决以表明它已解决
猜你喜欢
  • 2018-06-27
  • 2018-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-26
  • 2011-02-15
相关资源
最近更新 更多