python-3.x - 如何使用美丽的汤获得李名
问题描述
我正在尝试抓取美国的大学名单。我已经尝试环顾了几个小时,但没有任何效果(即其他方法只会使控制台崩溃)。这是我到目前为止所拥有的。
HTML 的格式如下:
<ol>
<a name="A"><b>A</b></a><br/>
<p>
<li><a href="http://www.acu.edu/">
Abilene Christian University</a> (acu.edu)
<li><a href="http://www.adelphi.edu/">
Adelphi University</a> (adelphi.edu)
<li><a href="http://www.scottlan.edu/">
Agnes Scott College</a> (scottlan.edu)
<li><a href="http://www.afit.af.mil/">
Air Force Institute of Technology</a> (afit.af.mil)
这是我的代码:
from bs4 import BeautifulSoup as soup
from urllib.request import urlopen as uReq
#Site for list scraping
my_url = "http://doors.stanford.edu/~sr/universities.html"
#Open connection and grab the page
uClient = uReq(my_url)
#Save contents to variable
page_html = uClient.read()
#Close connection
uClient.close()
#Html parsing
page_soup = soup(page_html, "html.parser")
#Checking the list
page_soup.ol
我已经尝试page_soup.findChildren("li")
了page_soup.find("li", {"class":"text"})
无数次,但无济于事。
帮助?
解决方案
在查看文档并进行实验后,我想通了。不过它有点脏,所以你必须清理它。
#Get the list
listofuni = [li.text for li in page_soup.findAll('li')]