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
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
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
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())
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())
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")