Вот скрипт на lxml, работает прекрасно, без проблем
import lxml.html
t = lxml.html.parse("http://www.python.org")
print t.find(".//title").text
import lxml.html
t = lxml.html.parse("http://www.bb8.com")
print t.find(".//title").text
print t.find(“.//title”).text
AttributeError: ‘NoneType’ object has no attribute ‘text’
Что вполне логично, ведь нет тайтла NoneType
И программа прекращает работать. Вопрос. Как обойти ошибку? Нужно создать условие, что если NoneType, то проходи дальше. Искал в гугле. Пишут, что надо получить значение атрибута, но честно говоря, я так и не понял их очень сложный код и он там был применим к другой ситуации.
Насчет beatifull soup, справляется с bb8 без проблем, но спотыкается на сайте bb5.com и прекращает работу
import urllib
import BeautifulSoup
soup = BeautifulSoup.BeautifulSoup(urllib.urlopen("http://www.bb5.com"))
print soup.title.string
File “/Documents/py-docs/ur.py”, line 3, in <module>
soup = BeautifulSoup.BeautifulSoup(urllib.urlopen("http://www.bb5.com“))
File ”/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py“, line 84, in urlopen
return opener.open(url)
File ”/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py“, line 205, in open
return getattr(self, name)(url)
File ”/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 349, in open_http
‘got a bad status line’, None)
IOError: ('http protocol error', 0, ‘got a bad status line’, None)