我正在尝试使用 beautifulsoup get_text() 方法从 html 标签中获取所有文本。我使用 Python 2.7 和 Beautifulsoup 4.4.0。它适用于大多数时间。但是,这种方法有时只能从标签中获取第一段。我不知道为什么。请看下面的例子。
from bs4 import BeautifulSoup
import urllib2
job_url = "http://www.indeed.com/viewjob?jk=0f5592c8191a21af"
site = urllib2.urlopen(job_url).read()
soup = BeautifulSoup(site, "html.parser")
text = soup.find("span", {"class": "summary"}).get_text()
print text
我想从这份职位描述中获取所有内容。基本上,我想获取 .但是,利用上面的代码,我只能得到“请注意,这是一份为期 1 年的契约(Contract)任务。在背景调查和药物测试完成之前,候选人不能开始任务”。为什么我丢失了其余的文字?如何在不指定子标签的情况下从此标签获取所有文本?
非常感谢。
最佳答案
尝试使用不同的解析器,例如 lxml
解析器,而不是 html.parser
解析器:
替换:
soup = BeautifulSoup(site, "html.parser")
与:
soup = BeautifulSoup(site, "lxml")
确保您首先安装了 lxml 解析器: http://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser
关于Python Beautifulsoup get_text() 没有获取所有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32670881/