Мне нужно создать программу на Python, которая получает HTML-файл со стандартного ввода и выводит названия видов, отображаемых под заголовком Млекопитающие, на стандартный вывод построчно, используя регулярное выражение.Мне также не нужно выводить элемент, отображаемый как «#sequence_only».
Файл, используемый для стандартного ввода, таков:
<!DOCTYPE html>
<!-- The following setting enables collapsible lists -->
<p>
<a href="#human">Human</a></p>
<p class="collapse-section">
<a class="collapsed collapse-toggle" data-toggle="collapse"
href=#mammals>Mammals</a>
<div class="collapse" id="mammals">
<ul>
<li><a href="#alpaca">Alpaca</a>
<li><a href="#armadillo">Armadillo</a>
<li><a href="#sequence_only">Armadillo</a> (sequence only)
<li><a href="#baboon">Baboon</a>
<li><a href="#bison">Bison</a>
<li><a href="#bonobo">Bonobo</a>
<li><a href="#brown_kiwi">Brown kiwi</a>
<li><a href="#bushbaby">Bushbaby</a>
<li><a href="#sequence_only">Bushbaby</a> (sequence only)
<li><a href="#cat">Cat</a>
<li><a href="#chimp">Chimpanzee</a>
<li><a href="#chinese_hamster">Chinese hamster</a>
<li><a href="#chinese_pangolin">Chinese pangolin</a>
<li><a href="#cow">Cow</a>
<li><a href="#crab-eating_macaque">Crab-eating_macaque</a>
<div class="gbFooterCopyright">
© 2017 The Regents of the University of California. All
Rights Reserved.
<br>
<a href="https://genome.ucsc.edu/conditions.html">Conditions of
Use</a>
</div>
Моя логика следующая.Я хочу разобрать значение href.Если строка начинается с
, а значение href начинается с "#" -> это имя вида, и мне нужно извлечь имя между "> <символами. Если значение href начинается с" https ", яхочу добавить его другим символом и не вводить в окончательном выводе. </p>
Я пытался создать регулярное выражение для извлечения имени млекопитающего.
#!usr/bin/env python3
import sys
import re
html = sys.stdin.readlines()
for line in html:
mammal_name = re.search(r'\"\>(.*?)\<', line)
if mammal_name:
print(mammal_name.group())
Я хотел получить вывод, например:
Alpaca
Armadillo
Baboon
Я получил выходные данные, такие как:
">Human<
">Alpaca<
">Armadillo<
">Armadillo<
">Baboon<
Я не хочу, чтобы Human был в выводе, поскольку строка, в которой он находится, не начинается с
. Более того, я делаюЯ не хочу повторений в моем выводе, но для этого мне нужно получить доступ к значению href, но я борюсь с этой частью.
ОБНОВЛЕНИЕ : Мой грейдер показывает мне следующее сообщение: «Если вызаключите название вида в теги, оно будет отображаться курсивом во многих браузерах, поэтому сотрудники, которые хотели отображать научные названия курсивом, вероятно, использовали теги.В любом случае, оно неуместно в качестве названия вида, поэтому, пожалуйста, удалите его ". Я предполагаю, что речь идет о> (названии вида) <, поэтому мне нужно заменить> <между названием вида с каким-либо другим символом, вероятно, []и делать анализ моего регулярного выражения после этого ?? </p>