【问题标题】:Scraping and print all names and tags on web based on specific tags根据特定标签在 Web 上抓取和打印所有名称和标签
【发布时间】:2019-08-10 02:24:41
【问题描述】:

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

我的班级名称是 div

我的身份证名称 = '姓名'

我的 id tags = '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

但我想要标签 == AAAAAAAAAAAA 给我带有标签的标签名称好吗? 像下面这样:

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

请帮助我和 tnx 为您提供帮助 :)

【问题讨论】:

  • 请提供有效的url
  • 提供有效的 url 或 html 源。没有人会编写代码来重现您的示例数据进行测试。您还将获得更快、更可靠的响应

标签: python web-scraping beautifulsoup python-requests


【解决方案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')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 2021-09-26
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 1970-01-01
    相关资源
    最近更新 更多