После входа на сайт я хочу собрать его ссылки. Это я с помощью этой функции (с помощью механизировать и urlparse библиотеки):python, "urlparse.urlparse (url) .hostname" return None value
br = mechanize.Browser()
.
. #logging in on website
.
for link in br.links():
url = urlparse.urljoin(link.base_url, link.url)
hostname = urlparse.urlparse(url).hostname
path = urlparse.urlparse(url).path
#print hostname #by printing this I found it to be the source of the None value
mylinks.append("http://" + hostname + path)
и я получаю сообщение об ошибке:
mylinks.append("http://" + hostname + path)
TypeError: cannot concatenate 'str' and 'NoneType' objects
Я не уверен в том, как это исправить, или даже если он может фиксироваться вообще. Есть ли способ принудительно добавить функцию, даже если она создаст нерабочий и странный результат для значения None?
В качестве альтернативы, то, что я действительно нахожу в ссылке, заканчивается. например, HTML код для одной из ссылок выглядеть следующим образом (что я после это мир «Lexik»):
<td class="center">
<a href="http://UnimportantPartOfLink/lexik>>lexik</a>
</td>
так альтернативный маршрут будет, если Mechanize может просто собрать это значение напрямую, минуя ссылки и проблемы с неизвестными значениями
Не можете ли вы просто обернуть оператор append в try, кроме блока? – RobinL