异常提出后,beautifulsoup没有工作

时间:2014-07-29 01:06:21

标签: python python-2.7 beautifulsoup

我的程序工作正常好几天,但昨天在这个例外被捕后:

<urlopen error [Errno 111] Connection refused>

现在每当我尝试运行我的代码时,我都会收到此错误:

AttributeError: 'NoneType' object has no attribute 'get_text'

这是出现此错误的行:

t = soup.find("h1", class_="title").get_text()

我不认为问题来自我的代码,因为它工作好几天了。是否有一个按钮来重新启动python:p(只是在开玩笑)

我应该提一下,当我在我的本地机器上运行我的代码时一切都很好,但在服务器上我一直得到AttributeError

修改

  • 当我打印汤。我没有结果
  • 当我打印soup.title我得到了页面的实际标题
  • html是正确的

3 个答案:

答案 0 :(得分:0)

提示:发布完整的堆栈跟踪,否则无法判断从上到下调用​​问题的函数链是什么。

因此,我只能推测:由于soup.body返回None,可能.find执行类似的返回None,否则你不会得到例外说&#34;在无&#34;。

中没有get_text()方法

显然,这是中间原因,但问题是导致此错误的原因(.body().find()依次返回None)和那个错误没有完整的堆栈跟踪就很难。

答案 1 :(得分:0)

我通过指定BeautifulSoup解析器解决了我的问题,这是因为BeautifulSoup解析器的差异。

BeautifulSoup(urlopen(url), "html5lib")

html5lib无法从这个特定的HTML获取正文,所以我将其更改为

BeautifulSoup(urlopen(url), "html.parser")

答案 2 :(得分:-3)

我认为它与网络有关。因为它无法连接到服务器而无法获取其html文件,这意味着如果您使用查找这样的功能,它将抛出一个错误。