我的程序工作正常好几天,但昨天在这个例外被捕后:
<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
修改
答案 0 :(得分:0)
提示:发布完整的堆栈跟踪,否则无法判断从上到下调用问题的函数链是什么。
因此,我只能推测:由于soup.body
返回None
,可能.find
执行类似的返回None
,否则你不会得到例外说&#34;在无&#34;。
显然,这是中间原因,但问题是导致此错误的原因(.body()
或.find()
依次返回None
)和那个错误没有完整的堆栈跟踪就很难。
答案 1 :(得分:0)
我通过指定BeautifulSoup解析器解决了我的问题,这是因为BeautifulSoup解析器的差异。
BeautifulSoup(urlopen(url), "html5lib")
html5lib
无法从这个特定的HTML获取正文,所以我将其更改为
BeautifulSoup(urlopen(url), "html.parser")
答案 2 :(得分:-3)
我认为它与网络有关。因为它无法连接到服务器而无法获取其html文件,这意味着如果您使用查找这样的功能,它将抛出一个错误。