diff options
author | icoz <icoz.vt@gmail.com> | 2017-07-09 14:21:51 +0300 |
---|---|---|
committer | icoz <icoz.vt@gmail.com> | 2017-07-09 14:21:51 +0300 |
commit | dcc9d0802613c0c08a137977fed43f457dac1a26 (patch) | |
tree | 9c0c7f4a5ab94b8ca2eedc14fb9c55b03be54318 | |
parent | 0de6bc02db68e68de416199abb2567e90168352b (diff) |
user.py:
- при анализе страницы пользователя добавлены проверки на бан или удаление аккаунта
habraparse.py:
- при получении списка избранных статей добавлена проверка на наличие записей
-rw-r--r-- | habr/user.py | 8 | ||||
-rwxr-xr-x | habraparse.py | 19 |
2 files changed, 19 insertions, 8 deletions
diff --git a/habr/user.py b/habr/user.py index 611927a..323026e 100644 --- a/habr/user.py +++ b/habr/user.py @@ -112,6 +112,10 @@ class TMUser(object): def _parseUserpage(self): # print(self._doc) + # check for BAN + if self._doc.xpath("//div[@class='main']/h1")[0].text.strip() == "Доступ закрыт": + # maybe raise ERROR??? + return p_tags = self._doc.xpath("//div[@class='user_profile']//ul[@id='people-tags']//a/span") date_of_registration = self._doc.xpath("//div[@class='user_profile']//dd[@class='grey']")[0].text.strip() tmp = self._doc.xpath("//div[@class='user_profile']//dl[last()]/dd") @@ -184,6 +188,10 @@ class TMUser(object): """ url = self._genFavoritesUrlByUser(self._username) doc = html.document_fromstring(requests.get(url).text) + # check for BAN + if doc.xpath("//div[@class='main']/h1")[0].text.strip() == "Доступ закрыт": + # maybe raise ERROR??? + return out = dict() pages = get_pages(doc) favs = doc.xpath("//div[@class='user_favorites']//a[@class='post__title_link']") diff --git a/habraparse.py b/habraparse.py index c455089..c9f4f7e 100755 --- a/habraparse.py +++ b/habraparse.py @@ -215,14 +215,17 @@ def create_url_list(username, filename, project='h'): T = GeektimesTopic if project == 'g' else HabraTopic urls = list() favs_id = hu.favorites() - for topic_name in favs_id: - try: - urls.append(T(favs_id[topic_name]).getTopicUrl()) - except PostDeleted: - print('Post {} is deleted!'.format(favs_id[topic_name])) - urls.sort() - with open(filename, 'wt') as f: - f.write('\n'.join(urls)) + if favs_id: + for topic_name in favs_id: + try: + urls.append(T(favs_id[topic_name]).getTopicUrl()) + except PostDeleted: + print('Post {} is deleted!'.format(favs_id[topic_name])) + urls.sort() + with open(filename, 'wt') as f: + f.write('\n'.join(urls)) + else: + print("Something went wrong. Maybe user is banned or deleted.") import docopt |