没有<li>使用美丽汤获得整条生产线



我使用BeautifulSoup提取类"secondary-nav-main-links"下的列表项。从https://www.champlain.edu/current-students网页。我认为我下面的工作代码将提取整个"行"字。第一行,但最后一部分"/li",被放置在自己的行。我包含了当前输出和独立输出的屏幕截图。什么好主意吗?谢谢! !

from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen('https://www.champlain.edu/current-students')
bs = BeautifulSoup(html.read(), 'html.parser')
soup = bs.find(class_='secondary-nav secondary-nav-sm has-callouts')
for div in soup.find_all('li'):
print(div)

当前输出:capture1

目的输出:capture2

您可以使用str.replace删除换行符你可以用html.unescape

&amp;这样的html字符进行转义
str(div).replace('n','')

&amp;替换为&,将此添加到print语句

import html
html.unescape(str(div))
所以你的代码变成了
from urllib.request import urlopen
from bs4 import BeautifulSoup
import html
html = urlopen('https://www.champlain.edu/current-students')
bs = BeautifulSoup(html.read(), 'html.parser')
soup = bs.find(class_='secondary-nav secondary-nav-sm has-callouts')
for div in soup.find_all('li'):
print(html.unescape(str(div).replace('n','')))

最新更新