我希望能够在最长的代码上过滤AttributeError
,但我不明白为什么它会在这个简单的代码上不断回复None
而不是AttributeError
?
from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen("http://www.pythonscraping.com/pages/page1.html")
bsObj = BeautifulSoup(html.read(), "html.parser")
print(bsObj.randomtest)
我正在运行Python 3.4.3
答案 0 :(得分:0)
如果我理解你在问什么,这就是你如何抓住var express = require("express"),
app = express();
app.get('*', function(req,res) {
if(req.isSocket){
return res.redirect('wss://' + req.headers.host + req.url)
}
else{
return res.redirect('https://' + req.headers.host + req.url)
}
}).listen(80);
。
AttributeError
答案 1 :(得分:0)
潜入bs4
来源你会发现原因。 __getattr__
的{{1}}方法已实现,实际上是从BeautifulSoup
继承的。每次访问不存在的属性时都会调用此方法。这是使用Tag
时发生的情况。将调用此方法:
randomtest
因此,如果找不到任何内容,它将返回def find(self, name=None, attrs={}, recursive=True, text=None,
**kwargs):
"""Return only the first child of this Tag matching the given
criteria."""
r = None
l = self.find_all(name, attrs, recursive, text, 1, **kwargs)
if l:
r = l[0]
return r
。