【问题标题】:How to extract h1 tag text with beautifulsoup如何用beautifulsoup提取h1标签文本
【发布时间】:2016-11-21 09:04:46
【问题描述】:

我想了解如何使用美丽的汤提取包含许多其他标签的 h1 标签文本:

<h1 class="listing-name">
Hôtel Vevey 
<span class="entry-feedbacks-summary-title-rating-stars-container bootstrap">
<span class="entry-feedbacks-summary-title-rating-stars entry-feedbacks-summary-title-rating-stars-empty" data-container=".entry-feedbacks-summary-title-rating-stars-container" data-content="Il n'y a pas encore d'avis de clients à propos de Astra Hôtel Vevey 4*sup. Cliquez pour évaluer." data-placement="right" data-toggle="popover" data-trigger="hover" data-original-title="" title="">
<a class="feedback-login-link entry-feedbacks-header-link" href="/auth/localch?origin=https%3A%2F%2Ftel.local.ch%2Ffr%2Fd%2FVevey%2F1800%2FHotel%2FAstra-Hotel-Vevey-4sup-SVGb8b5z-QdrzGTddmyAAg%3Fwhat%3DHotel%26where%3DVaud%2B%2528Canton%2529%23entry-feedbacks-bottom-rate-button"><span class="entry-feedback-rating-star">
<i class="icon-star-outline entry-feedback-rating-star-empty"></i>
</span>
<span class="entry-feedback-rating-star">
<i class="icon-star-outline entry-feedback-rating-star-empty"></i>
</span>
<span class="entry-feedback-rating-star">
<i class="icon-star-outline entry-feedback-rating-star-empty"></i>
</span>
<span class="entry-feedback-rating-star">
<i class="icon-star-outline entry-feedback-rating-star-empty"></i>
</span>
<span class="entry-feedback-rating-star">
<i class="icon-star-outline entry-feedback-rating-star-empty"></i>
</span>

</a></span>

</span>
</h1>

我试图在 h1 标签“hôtel Vevey”之后提取文本。

import requests
from bs4 import BeautifulSoup

url = "https://tel.local.ch/fr/d/Vevey/1800/Hotel/Astra-Hotel-Vevey-4sup-SVGb8b5z-QdrzGTddmyAAg?what=Hotel&where=Vaud+%28Canton%29"
get_url = requests.get(url)
get_text = get_url.text
soup = BeautifulSoup(get_text, "html.parser")

company = soup.find_next('h1', 'class:listing-name')


print(company)

它返回“无”

【问题讨论】:

    标签: python beautifulsoup


    【解决方案1】:

    对于您提供的当前链接,您可以这样获取:

    company = soup.select('h1.listing-name')[0].text.strip()
    print(company)
    

    输出:

    Astra Hôtel Vevey 4*sup
    

    【讨论】:

    • 谢谢!我确实尝试过这个,但我没有想到条带!
    【解决方案2】:

    尝试使用字典:

    company = soup.find('h1', {'class' : 'listing-name'})
    

    或以下:

    company = soup.find('h1', class_ ='listing-name')
    

    课后注意下划线。这是因为class是python中的保留字。

    更多信息可以在这里找到:https://www.crummy.com/software/BeautifulSoup/bs4/doc/#attrs

    【讨论】:

    • soup.select():1000 次循环,3 次中最好:每个循环 815 µs soup.find():1000 次,3 次中最好:每个循环 1.61 毫秒; select() 快 2 倍。
    猜你喜欢
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2012-04-08
    • 2014-05-22
    相关资源
    最近更新 更多