【问题标题】:'str' object has no attribute 'p' using beautifulsoup'str' 对象没有属性 'p' 使用 beautifulsoup
【发布时间】:2023-04-05 20:09:01
【问题描述】:

我一直在关注有关使用 BeautifulSoup 的教程,但是当我尝试阅读标题甚至段落(使用 soup.p)时,我收到一条错误消息,“Traceback(最近一次通话最后一次): 文件“*****/Tutorial1.py”,第 9 行,在 pTag = 汤.p AttributeError: 'str' 对象没有属性 'p'"

我对 Python 还是很陌生,如果这些问题太简单了,我很抱歉,但我将非常感谢任何帮助。代码如下:

import urllib.request
from bs4 import BeautifulSoup


with urllib.request.urlopen('http://www.bbc.co.uk/sport/0/netball/33717953')    as response:
    page = response.read()
    soup = BeautifulSoup(page, "html5lib")
    soup = soup.prettify()
    pTag = soup.p

    print(pTag)

【问题讨论】:

  • 您的问题到底是什么?错误消息似乎很清楚

标签: python beautifulsoup web-crawler python-3.5


【解决方案1】:

引用Beautiful Soup Documentation

prettify() 方法会将 Beautiful Soup 解析树转换为格式良好的 Unicode 字符串,每个 HTML/XML 标记都在自己的行中。

您在此处将字符串设置为soup var:soup = soup.prettify()。当然字符串没有p属性,然后崩溃。

要查找所有ps:

...
page = response.read()
soup = BeautifulSoup(page, "html5lib")
for paragraph in soup.find_all('p'):
    do_something_with(paragraph)

【讨论】:

  • 哦 sosoup.prettify() 是字符串而不是解析树,谢谢@danihp
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-11
  • 1970-01-01
  • 2016-09-20
  • 2019-03-25
  • 2017-05-13
  • 2014-04-28
相关资源
最近更新 更多