Как я могу очистить результат этого запроса? - PullRequest
1 голос
/ 14 мая 2019

Я работаю с веб-API (film API).Когда я делаю почтовый запрос, используя запросы к определенному URL, я получаю следующий ответ:

<a href='\"https:\/\/xdede.co\/peliculas\/p284052-ver-doctor-strange-online\"' up-target='\"body\"'>\n\t\t\t\t\t\t
<div class='\"SPoster\"'>\n\t\t\t\t\t\t\t
<img src='\"https:\/\/image.tmdb.org\/t\/p\/w45\/7OpmunCEZo93nyRIbx59QRaFvZz.jpg\"'/>\n\t\t\t\t\t\t&lt;\/div&gt;\n\t\t\t\t\t\t
<h2>Doctor Strange&lt;\/h2&gt;\n\t\t\t\t\t\t<span>Pelicula&lt;\/span&gt;\n\t\t\t\t\t&lt;\/a&gt;\n\t\t\t\t&lt;\/div&gt;\n\t\t\t\t"}</span>
</h2></div></a>

Как я могу отфильтровать этот беспорядок, чтобы получить теги href и h2?Я пробовал beautifulsoup, но ничего.Любой совет?

1 Ответ

1 голос
/ 14 мая 2019

Использование BeautifulSoup и regex

import re

import bs4 as bs4

html = """<a href='\"https:\/\/xdede.co\/peliculas\/p284052-ver-doctor-strange-online\"' up-target='\"body\"'>\n\t\t\t\t\t\t<div class='\"SPoster\"'>\n\t\t\t\t\t\t\t<img src='\"https:\/\/image.tmdb.org\/t\/p\/w45\/7OpmunCEZo93nyRIbx59QRaFvZz.jpg\"'/>\n\t\t\t\t\t\t&lt;\/div&gt;\n\t\t\t\t\t\t<h2>Doctor Strange&lt;\/h2&gt;\n\t\t\t\t\t\t<span>Pelicula&lt;\/span&gt;\n\t\t\t\t\t&lt;\/a&gt;\n\t\t\t\t&lt;\/div&gt;\n\t\t\t\t"}</span></h2></div></a>"""
soup = bs4.BeautifulSoup(html, features='html.parser')

href = re.sub(r'[\\"]', '', soup.a['href'])
h2 = re.sub(r'<[^>]*>', '', soup.a.h2.text)
h2 = ' '.join(re.findall(r'(\w+)', h2))

print(href)
print(h2)

Выход:

https://xdede.co/peliculas/p284052-ver-doctor-strange-online
Doctor Strange Pelicula
...