@@ -167,6 +167,7 @@ def get_all_answers(self):
167167 if answers_num == 0 :
168168 print "No answer."
169169 return
170+ yield
170171 else :
171172 for i in xrange ((answers_num - 1 ) / 50 + 1 ):
172173 if i == 0 :
@@ -865,11 +866,11 @@ def to_txt(self):
865866 # f = open(file_name, "wt")
866867 # print file_name
867868 # else:
868- # file_name = self.get_question().get_title() + "--" + self.get_author().get_user_id() + "的回答.html"
869- # f = open(file_name, "wt")
870- # print file_name
871- # f.write(str(content))
872- # f.close()
869+ # file_name = self.get_question().get_title() + "--" + self.get_author().get_user_id() + "的回答.html"
870+ # f = open(file_name, "wt")
871+ # print file_name
872+ # f.write(str(content))
873+ # f.close()
873874
874875 def to_md (self ):
875876 content = self .get_content ()
@@ -885,10 +886,10 @@ def to_md(self):
885886 file_name = self .get_question ().get_title () + "--" + self .get_author ().get_user_id () + "的回答.md"
886887 print file_name
887888 # if platform.system() == 'Windows':
888- # file_name = file_name.decode('utf-8').encode('gbk')
889- # print file_name
889+ # file_name = file_name.decode('utf-8').encode('gbk')
890+ # print file_name
890891 # else:
891- # print file_name
892+ # print file_name
892893 if not os .path .isdir (os .path .join (os .path .join (os .getcwd (), "markdown" ))):
893894 os .makedirs (os .path .join (os .path .join (os .getcwd (), "markdown" )))
894895 if os .path .exists (os .path .join (os .path .join (os .getcwd (), "markdown" ), file_name )):
@@ -908,10 +909,10 @@ def to_md(self):
908909 print file_name
909910 # file_name = self.get_question().get_title() + "--" + self.get_author().get_user_id() + "的回答.md"
910911 # if platform.system() == 'Windows':
911- # file_name = file_name.decode('utf-8').encode('gbk')
912- # print file_name
912+ # file_name = file_name.decode('utf-8').encode('gbk')
913+ # print file_name
913914 # else:
914- # print file_name
915+ # print file_name
915916 f = open (os .path .join (os .path .join (os .getcwd (), "markdown" ), file_name ), "wt" )
916917 f .write ("# " + self .get_question ().get_title () + "\n " )
917918 if platform .system () == 'Windows' :
@@ -957,18 +958,21 @@ def get_voters(self):
957958 self .parser ()
958959 soup = self .soup
959960 data_aid = soup .find ("div" , class_ = "zm-item-answer " )["data-aid" ]
960- request_url = 'http://www.zhihu.com/node/AnswerFullVoteInfoV2?params=%7B%22answer_id%22%3A%22' + str (
961- data_aid ) + '%22%7D'
961+ request_url = 'http://www.zhihu.com/node/AnswerFullVoteInfoV2'
962962 if session == None :
963963 create_session ()
964964 s = session
965- r = s .get (request_url )
965+ r = s .get (request_url , params = { "params" : "{ \" answer_id \" : \" %d \" }" % int ( data_aid )} )
966966 soup = BeautifulSoup (r .content )
967967 voters_info = soup .find_all ("span" )[1 :- 1 ]
968968 for voter_info in voters_info :
969- voter_url = "http://www.zhihu.com" + str (voter_info .a ["href" ])
970- voter_id = voter_info .a ["title" ].encode ("utf-8" )
971- yield User (voter_url , voter_id )
969+ if voter_info .string == ( u"匿名用户、" or u"匿名用户" ):
970+ voter_url = None
971+ yield User (voter_url )
972+ else :
973+ voter_url = "http://www.zhihu.com" + str (voter_info .a ["href" ])
974+ voter_id = voter_info .a ["title" ].encode ("utf-8" )
975+ yield User (voter_url , voter_id )
972976
973977
974978class Collection :
@@ -1059,12 +1063,12 @@ def get_all_answers(self):
10591063 if len (answer_list ) == 0 :
10601064 print "the collection is empty."
10611065 return
1066+ yield
10621067 else :
10631068 question_url = None
10641069 question_title = None
10651070 for answer in answer_list :
10661071 if not answer .find ("p" , class_ = "note" ):
1067- # print 'answer',answer
10681072 question_link = answer .find ("h2" )
10691073 if question_link != None :
10701074 question_url = "http://www.zhihu.com" + question_link .a ["href" ]
0 commit comments