Python 2 Beautiful Soup,从所有标签中获取文本

时间:2018-08-15 10:23:21

标签: python parsing beautifulsoup

试图从所有具有类task-topic-deprecated的标签中获取文本,但是我似乎只能获取文本。

不是BeautifulSoup get_text from find_all的副本-此问题使用多个类名,因此工作语法略有不同,class_attrs={'class':'

源页面: https://developer.apple.com/documentation/cfnetwork?language=objc

输出将是在上一页中删除的任何字符串:

CFFTPCreateParsedResourceListing
kCFFTPResourceGroup
...etc

find_next()似乎并没有按照我的期望移动到下一项,而是打印出我已经拥有的文本。

page = requests.get("https://developer.apple.com/documentation/cfnetwork?language=objc")
soup = BeautifulSoup(page.content, 'html.parser')

aRow = soup.find('a', attrs={'class':'task-topic-deprecated has-adjacent-element symbol-name'}).get_text()
print aRow
bRow = soup.find('a', attrs={'class':'task-topic-deprecated has-adjacent-element symbol-name'}).find_next().get_text()
print bRow
cRow = soup.find('a', attrs={'class':'task-topic-deprecated has-adjacent-element symbol-name'}).find_next().find_next().get_text()
print cRow


CFFTPCreateParsedResourceListing
CFFTPCreateParsedResourceListing
CFFTPCreateParsedResourceListing

还尝试将其从我在Stack Overflow上发现的各种内容中放入一个循环中,但似乎仍然只能按照上述方法抓取1个项目。

也尝试过使用xPath,但这无法捕获任何内容并打印出空白列表

tree = html.fromstring(page.content)
allItems = tree.xpath('//a[@class="task-topic-deprecated has-adjacent-element symbol-name"]/text()')
print allItems 

1 个答案:

答案 0 :(得分:1)

我认为您做错了,而不是find,可以使用find_all方法获得结果。

for i in soup.find_all('a', class_='task-topic-deprecated has-adjacent-element symbol-name'):
    print i.get_text()

可能对您有帮助