Как получить текст без тега HTML
Ниже приводится HTML:
<div class="ajaxcourseindentfix">
<h3>CPSC 353 - Introduction to Computer Security (3) </h3>
<hr>Security goals, security systems, access controls, networks and security, integrity, cryptography fundamentals, authentication. Attacks: software, network, website; management considerations, security standards in government and industry; security issues in requirements, architecture, design, implementation, testing, operation, maintenance, acquisition, and services.
<br>
<br>Prerequisite: <a href="preview_course_nopop.php?catoid=16&coid=96570" onclick="acalogPopup()">CPSC 253U</a>
<span style="display: none !important"> </span> or <a href="#" onclick="acalogPopup()" target="_blank">CPSC 254</a>
<span style="display: none !important"> </span> and <a href="#" onclick="acalogPopup()" target="_blank">CPSC 351</a>
<span style="display: none !important"> </span>
, declared major/minor in CPSC, CPEN, or CPEI
<br>
</div>
Мне нужно получить следующий текст из этого HTML:
Из строки 6 - или
Из строки 7 - и
, объявлен основным / второстепенным в CPSC, CPEN или CPEI
Я могу получить href [Номер курса: CPSC 254 и т. Д.] Со следующим XPath:
# This xpath gives me all the tags followed by h3 and then I iterate through them in my script.
//div[@class='ajaxcourseindentfix']/h3/following-sibling::text()[2]/following-sibling::*
Обновить
И затем текст со следующим XPath:
# This xpath gives me all the text after the h3 tag.
//div[@class='ajaxcourseindentfix']/h3/following-sibling::text()[2]/following-sibling::text()
Мне нужно, чтобы эти название курса / предварительные условия были такими же, как и в URL 1.
При таком подходе я получаю сначала весь HREF, а затем весь текст. Есть ли лучший способ добиться этого? Я не хочу перебирать 2 XPath, чтобы сначала получить HREF, а затем текст, а затем скомпоновать их, чтобы сформировать обязательную строку.
1 http://catalog.fullerton.edu/ajax/preview_course.php?catoid=16&coid=99648&show
1 ответ
Попробуйте использовать приведенный ниже код, чтобы получить требуемый вывод:
div = soup.select("div.ajaxcourseindentfix")[0]
" ".join([word for word in div.stripped_strings]).split("Prerequisite: ")[-1]
Выход
'CPSC 253U or CPSC 254 and CPSC 351 , declared major/minor in CPSC, CPEN, or CPEI'