def parse(self):
     #res = session.get(self.url, headers=self.headers)
     res = mul_get_request(session, self.url, headers)
     if not res:
         return False
     self.soup = BeautifulSoup(res.content, "html.parser")
     #print res.content
     self._xsrf = re.findall(r'name="_xsrf" value="(\S+)"', res.content)[0]
     return True
Exemple #2
0
 def parse(self):
     url = self.url
     #res = session.get(url, headers=self.headers)
     res = mul_get_request(session, url, headers)
     if not res:
         return False
     self.soup = BeautifulSoup(res.content, "html.parser")
     self.profile_header = self.soup.find("div", class_="zm-profile-header ProfileCard")
     self._xsrf = re.findall(r'name="_xsrf" value="(\S+)"', res.content)[0]
     return True
Exemple #3
0
 def parse(self):
     url = self.url
     #res = session.get(url, headers=self.headers)
     res = mul_get_request(session, url, headers)
     if not res:
         return False
     self.soup = BeautifulSoup(res.content, "html.parser")
     self.profile_header = self.soup.find("div", class_="zm-profile-header ProfileCard")
     # self._xsrf = re.findall(r'name="_xsrf" value="(\S+)"', res.content)[0]
     return True
Exemple #4
0
 def get_answers(self):
     self.check()
     answer_num = int(self.soup.find("span", class_="Tabs-meta").text)
     for page in range(answer_num / 20 + 1):
         url = self.url + "/answers"
         params = {"order_by": "vote_num", "page": page + 1}
         #res = session.get(url, params=params, headers=self.headers)
         res = mul_get_request(session, url, headers, params=params)
         if not res:
             return
         soup = BeautifulSoup(res.content, "html.parser")
         zmitems = soup.select("div[class=zm-item]")
         for item in zmitems:
             yield UAItem(item, self._xsrf, self.get_name())
Exemple #5
0
 def get_answers(self):
     self.check()
     answer_num = int(self.soup.find("span", class_="Tabs-meta").text)
     for page in range(answer_num / 20 + 1):
         url = self.url + "/answers"
         params = {
             "order_by": "vote_num",
             "page": page + 1
         }
         #res = session.get(url, params=params, headers=self.headers)
         res = mul_get_request(session, url, headers, params=params)
         if not res:
             return
         soup = BeautifulSoup(res.content, "html.parser")
         zmitems = soup.select("div[class=zm-item]")
         for item in zmitems:
             yield UAItem(item, self._xsrf, self.get_name())
Exemple #6
0
    def add_to_collections(self):
        '''
        暂不支持创建新的收藏夹
        '''
        url = "https://www.zhihu.com/collections/json?answer_id={}".format(self.get_data_id())
        #res = session.get(url, headers=self.headers)
        res = mul_get_request(session, url, headers)
        if not res:
            return
        collections = res.json()["msg"][0]
        print "\n",
        for i, m in enumerate(collections):
            print "{0}:{1}  {2}条答案  {3}人关注".format(i, m[1], m[3], m[4])
        print "\n",

        index = -1
        length = len(collections)
        while not (0 <= index < length):
            num = raw_input("请选择收藏夹序号(0-{}), 输入cancle取消操作\n".format(length-1))
            if num == "cancle":
                return
            try:
                index = int(num)
            except:
                print termcolor.colored("请输入正确的序号", "red")
        add_url = "https://www.zhihu.com/collection/add"
        data = {
            "answer_id": self.get_data_id(),
            "_xsrf": self._xsrf,
            "favlist_id": str(collections[index][0])
        }
        #res = session.post(add_url, data, headers=self.headers)
        res = mul_post_request(session, add_url, self.headers, data=data)
        if not res:
            return
        print "\n",
        if res.json()["r"] == 0:
            print termcolor.colored("收藏成功", "green")
        else:
            print termcolor.colored("您已经收藏过该答案", "green")