我使用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
&
这样的html字符进行转义str(div).replace('n','')
将&
替换为&
,将此添加到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','')))