Как получить титулы ли, используя красивый суп - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь вычеркнуть список университетов в Соединенных Штатах. Я пытался смотреть вокруг в течение нескольких часов, но ничего не работает (то есть другие методы просто сбивают консоль). Вот что у меня так далеко.

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"}) и многие другие, но безрезультатно.

Помощь?

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Я просто пытаюсь page_soup.find_all("li") и могу получить все теги <li>.

Не знаю, почему он не может получить <li> внутри <ol> с помощью "ol.getChildren ()", есть также сообщение об этом Невозможно очистить тег внутри

.

0 голосов
/ 12 ноября 2018

После просмотра документации и экспериментов я понял это. Хотя это немного грязно, так что вам придется его чистить.

#Get the list
listofuni = [li.text for li in page_soup.findAll('li')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...