Очистка и печать всех имен и тегов в сети на основе определенных тегов - PullRequest
0 голосов
/ 19 марта 2019

все имена в моей HTML-ссылке имеют один тег, хорошо?(я использую красивый суп) Я хочу вырезать и напечатать все имена с их тегами, если их теги ==
'определенная строка' хорошо?

мое имя класса - div

мой идентификаторnames = 'name'

теги my id = 'tag'

и мой код такой:

from bs4 import BeautifulSoup
import requests

r = requests.get('https://aaaaaaaaa.org/plus')
soup = BeautifulSoup(r.text, 'html.parser')
res = soup.find_all(id={'name', 'tag'})
for item in res:
    print(item.text.strip())

мой вывод такой:

General English: Intermediate
bbb
General English: Elementary
AAAAAAAAAAA
General English: Intermediate Plus
bbbbbbb
General English: Beginner
ggg
TOEFL iBT: Listening and Speaking
bbbbbbbb
TOEFL iBT: Reading
AAAAAAAAAAA
Grammar for IELTS
AAAAAAAAAAA

но я хочу, чтобы теги == AAAAAAAAAAA давали мне имена тегов с тегом, хорошо?Например:

General English: Elementary
AAAAAAAAAAA
TOEFL iBT: Reading
AAAAAAAAAAA
Grammar for IELTS
AAAAAAAAAAA

, пожалуйста, помогите мне и tnx за вашу помощь:)

1 Ответ

0 голосов
/ 19 марта 2019

Я думаю, что лучшим способом было бы использовать xpath. Вы можете использовать библиотеку lxml.

import lxml.html
import lxml.etree

def html_to_root(html):
    html_parser = lxml.etree.HTMLParser(encoding='utf-8')
    return lxml.etree.HTML(html, parser=html_parser)

 html_tree = html_to_root(resp.content)

 division_you_want = html_tree.xpath('xpath')
...