一位用户想要使用 Python 和 Beautifulsoup 来采集网页上的文本,但目前还没有成功。用户提供了部分网页源代码作为参考,但未能成功获取文本内容。
2、解决方案
2.1 问题分析
仔细查看提供的代码,发现存在以下问题:
- 在使用
soup.find_all()
方法时,直接使用了'span'
作为参数,这将匹配所有<span>
标签,而不仅仅是包含新闻标题的<span>
标签。 - 在迭代结果时,直接使用
xw
作为变量名,但xw
实际上是<span>
标签,而不是新闻标题文本。
2.2 解决方法
解决方法如下:
- 在使用
soup.find_all()
方法时,添加属性条件attrs={'class': "f14 blue001"}
,以便只匹配包含新闻标题的<span>
标签。 - 在迭代结果时,使用
.getText()
方法来获取新闻标题文本。
2.3 完整代码
from bs4 import BeautifulSoup
import re
import urllib2
url = "http://www.legaldaily.com.cn/locality/node_32245.htm"
page = urllib2.urlopen(url)
soup = BeautifulSoup(page.read())
xinwen = soup.find_all('span', attrs={'class': "f14 blue001"})
for xw in xinwen:
print xw.getText()