根据特定标签在网络上刮取并打印所有名称和标签

时间:2019-03-19 14:13:29

标签: python web-scraping beautifulsoup python-requests

我的HTML链接上的所有名称都有一个标签好吗? (我用美丽的汤) 如果他们的标签==
,我想使用他们的标签剪贴并打印所有名称 '特定字符串'好吗?

我的班级名字是div

我的id名称='名称'

我的id标签='标签'

我的代码是这样:

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 :(得分:-1)

我认为最好的方法是使用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')