【问题标题】:Web Scraping using BeautifulSoup [alt] [python]使用 BeautifulSoup 进行网页抓取 [alt] [python]
【发布时间】:2018-10-16 12:35:07
【问题描述】:

给了我一个 HTML 代码,我特别感兴趣的部分如下所示:

<a href="/go/wydarzenia/rozrywka/35826-majowka-w-twierdzy-klodzko? 
termin=265036" class="link with-img"> <img 
src="/go/resources/main/img//download/img- 
14ab4e372df7bd0826c90f429f0e5933/twierdza-przewodnik-jpg.jpg" alt="Majówka w 
Twierdzy Kłodzko" class=""/>

我知道它看起来有点乱,但无论如何我必须处理它。
我的工作是提取 alt 之后的文本。
所以在上面的代码中,输出应该是这样的

>> Majówka w Twierdzy Kłodzko

我阅读了here 很多关于通过搜索 CSS 类或 HTML 标记来提取数据的有用信息。但是我没有发现任何关于 alt 的内容。 我将不胜感激。


这是我经过一些更改后的代码

import requests
from bs4 import BeautifulSoup
url = 'https://www.wroclaw.pl/go/wydarzenia/rozrywka/eventy'
soup = BeautifulSoup(requests.get(url).content, "html.parser")
print(soup.a.img.attrs["alt"])

输出显示: AttributeError: 'NoneType' 对象没有属性 'attrs'
我做错了什么?

【问题讨论】:

    标签: python web beautifulsoup


    【解决方案1】:

    使用属性键获取所需的值。

    例如:

    from bs4 import BeautifulSoup
    s = """<a href="/go/wydarzenia/rozrywka/35826-majowka-w-twierdzy-klodzko? 
    termin=265036" class="link with-img"> <img 
    src="/go/resources/main/img//download/img- 
    14ab4e372df7bd0826c90f429f0e5933/twierdza-przewodnik-jpg.jpg" alt="Majówka w 
    Twierdzy Kłodzko" class=""/>"""
    soup = BeautifulSoup(s, "html.parser")
    print(soup.a.img["alt"])    #or print(soup.a.img.attrs["alt"])
    

    输出:

    Majówka w Twierdzy Kłodzko
    

    【讨论】:

    • 谢谢!它确实有效。我知道这不是主题,但我需要下载整个页面,而不仅仅是我们的 $s$。最好的方法是什么?使用 urllib3?
    • 不客气 :)。您可以使用urllib3requests 模块
    • 好的。再次感谢!我不知道我是否理解 - 所以 BeautifulSoup 需要一个字符串,不是吗?
    • 此链接应该对您有所帮助。 stackoverflow.com/questions/39757805/… 他们使用requestsbeautifulsoup
    • 谢谢。它确实有帮助,但是我的代码仍然不起作用。非常感谢您的关注。
    【解决方案2】:

    你可以使用BeautifulSoup:

    from bs4 import BeautifulSoup as soup
    s = '<a href="/go/wydarzenia/rozrywka/35826-majowka-w-twierdzy-klodzko? termin=265036" class="link with-img"> <img src="/go/resources/main/img//download/img- 14ab4e372df7bd0826c90f429f0e5933/twierdza-przewodnik-jpg.jpg" alt="Majówka w Twierdzy Kłodzko" class=""/>'
    alt = soup(s, 'lxml').find('img')['alt']
    

    输出:

    u'Maj\xf3wka w Twierdzy K\u0142odzko'
    

    【讨论】:

      猜你喜欢
      • 2020-10-04
      • 2021-01-31
      • 1970-01-01
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      • 2019-02-15
      相关资源
      最近更新 更多