From 4fd274a291ba96095cf1e3dbbaa1eef28f65a9a9 Mon Sep 17 00:00:00 2001 From: hzcortex Date: Thu, 2 Jun 2016 15:44:20 +0800 Subject: [PATCH 1/4] Update zhihu.py use @decorators to simplify the structure of code --- zhihu.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/zhihu.py b/zhihu.py index e00e939..504d1aa 100755 --- a/zhihu.py +++ b/zhihu.py @@ -200,7 +200,15 @@ def parser(self): } r = requests.get('https://zhuanlan.zhihu.com/api/columns/' + self.slug, headers=headers, verify=False) self.meta = r.json() - + + def parse_handle(func): + @wraps(func) + def func_wrapper(self): + if not hasattr(self,'meta'): + self.parse() + return func(self) + return func_wrapper + def get_title(self): if hasattr(self,"title"): if platform.system() == 'Windows': @@ -237,10 +245,8 @@ def get_followers_num(self): meta = self.meta followers_num = int(meta['followersCount']) return followers_num - + @parse_handle def get_posts_num(self): - if self.meta == None: - self.parser() meta = self.meta posts_num = int(meta['postsCount']) return posts_num From d1164e186e768bcd0baf8930a1bd3f90407f6aa6 Mon Sep 17 00:00:00 2001 From: hzcortex Date: Thu, 2 Jun 2016 16:03:01 +0800 Subject: [PATCH 2/4] Update zhihu.py --- zhihu.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/zhihu.py b/zhihu.py index 504d1aa..7492c56 100755 --- a/zhihu.py +++ b/zhihu.py @@ -597,6 +597,30 @@ def get_head_img_url(self, scale=4): soup = self.soup url = soup.find("img", class_="Avatar Avatar--l")["src"] return url[:-5] + scale_name[scale] + url[-4:] + + def download_head_img(self, head_url=None): + url = get_head_img_url() + r = requests.get(url) + user = get_user_id() + image_name = user + url[-4:] + + if os.path.exists(os.path.join(os.getcwd(), 'Avatar')): + new_dir = raw_input(u'请输入想保存的路径名称') + os.mkdir(new_dir) + os.chdir(new_dir) + else: + os.mkdir('Avatar') + os.chdir('Avatar') + + with open(image_name, 'wb') as image: + image.write(r.content) + + if os.path.isfile(image_name): + Logging.success(u'Success Download the Avatar') + return True + else: + Logging.error(u'Error happened') + return False def get_data_id(self): """ From 835bca7481778ee89ecabcd12a438cffae5ea71c Mon Sep 17 00:00:00 2001 From: hzcortex Date: Thu, 2 Jun 2016 16:05:15 +0800 Subject: [PATCH 3/4] Update zhihu.py --- zhihu.py | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/zhihu.py b/zhihu.py index 7492c56..ee2eda1 100755 --- a/zhihu.py +++ b/zhihu.py @@ -201,14 +201,6 @@ def parser(self): r = requests.get('https://zhuanlan.zhihu.com/api/columns/' + self.slug, headers=headers, verify=False) self.meta = r.json() - def parse_handle(func): - @wraps(func) - def func_wrapper(self): - if not hasattr(self,'meta'): - self.parse() - return func(self) - return func_wrapper - def get_title(self): if hasattr(self,"title"): if platform.system() == 'Windows': @@ -245,8 +237,10 @@ def get_followers_num(self): meta = self.meta followers_num = int(meta['followersCount']) return followers_num - @parse_handle + def get_posts_num(self): + if self.meta == None: +- self.parser() meta = self.meta posts_num = int(meta['postsCount']) return posts_num From eaff3f483e4fdead0825dee6d7ac4a76f961fe69 Mon Sep 17 00:00:00 2001 From: hzcortex Date: Thu, 2 Jun 2016 16:09:04 +0800 Subject: [PATCH 4/4] Update zhihu.py --- zhihu.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/zhihu.py b/zhihu.py index ee2eda1..db4d128 100755 --- a/zhihu.py +++ b/zhihu.py @@ -592,6 +592,30 @@ def get_head_img_url(self, scale=4): url = soup.find("img", class_="Avatar Avatar--l")["src"] return url[:-5] + scale_name[scale] + url[-4:] + def download_head_img(self, head_url=None): + url = get_head_img_url() + r = requests.get(url) + user = get_user_id() + image_name = user + url[-4:] + + if os.path.exists(os.path.join(os.getcwd(), 'Avatar')): + new_dir = raw_input(u'请输入想保存的路径名称') + os.mkdir(new_dir) + os.chdir(new_dir) + else: + os.mkdir('Avatar') + os.chdir('Avatar') + + with open(image_name, 'wb') as image: + image.write(r.content) + + if os.path.isfile(image_name): + Logging.success(u'Success Download the Avatar') + return True + else: + Logging.error(u'Error happened') + return False + def download_head_img(self, head_url=None): url = get_head_img_url() r = requests.get(url)