示例#1
0
    def create_work_set(self, target_url):
        u"""
        根据target_url(例:http://www.jianshu.com/users/b1dd2b2c87a8/latest_articles)的内容,
        先获得creator_id, 再根据文章的数目, 获得页面数, 依次打开每个页面, 将文章的地址放入work_set中
        :param target_url:
        :return:
        """
        if target_url in self.task_complete_set:
            return
        id_result = Match.jianshu(target_url)
        jianshu_id = id_result.group('jianshu_id')

        # ############下面这部分应该是JianshuAuthorInfo的内容, 完成jianshu_info中的内容,暂时写在这, TODO, 一行只能写一个地址
        content_profile = Http.get_content(target_url)

        parser = JianshuParser(content_profile)
        self.question_list += parser.get_jianshu_info_list()
        # #############上面这部分应该是JianshuAuthorInfo的内容, 完成jianshu_info中的内容,暂时写在这

        self.task_complete_set.add(target_url)
        article_num = self.question_list[0][
            'article_num']  # 这样的话, 一行只能写一个地址  TODO: 硬编码

        if article_num % 9 != 0:
            page_num = article_num / 9 + 1  # 博客目录页面, 1页放50个博客链接
        else:
            page_num = article_num / 9

        article_list = self.parse_get_article_list(content_profile)
        for item in article_list:
            self.work_set.add(item)
        for page in range(page_num - 1):  # 第一页是不需要打开的
            url = 'http://www.jianshu.com/users/{}/latest_articles?page={}'.format(
                jianshu_id, page + 2)
            content_article_list = Http.get_content(url)
            article_list = self.parse_get_article_list(content_article_list)
            for item in article_list:
                self.work_set.add(item)
        return
示例#2
0
    def create_work_set(self, target_url):
        u"""
        根据target_url(例:http://www.jianshu.com/users/b1dd2b2c87a8/latest_articles)的内容,
        先获得creator_id, 再根据文章的数目, 获得页面数, 依次打开每个页面, 将文章的地址放入work_set中
        :param target_url:
        :return:
        """
        if target_url in self.task_complete_set:
            return
        id_result = Match.jianshu(target_url)
        jianshu_id = id_result.group('jianshu_id')

        # ############下面这部分应该是JianshuAuthorInfo的内容, 完成jianshu_info中的内容,暂时写在这, TODO, 一行只能写一个地址
        content_profile = Http.get_content(target_url)

        parser = JianshuParser(content_profile)
        self.question_list += parser.get_jianshu_info_list()
        # #############上面这部分应该是JianshuAuthorInfo的内容, 完成jianshu_info中的内容,暂时写在这

        self.task_complete_set.add(target_url)
        article_num = self.question_list[0]['article_num']    # 这样的话, 一行只能写一个地址  TODO: 硬编码

        if article_num % 9 != 0:
            page_num = article_num/9 + 1      # 博客目录页面, 1页放50个博客链接
        else:
            page_num = article_num / 9

        article_list = self.parse_get_article_list(content_profile)
        for item in article_list:
            self.work_set.add(item)
        for page in range(page_num-1):          # 第一页是不需要打开的
            url = 'http://www.jianshu.com/users/{}/latest_articles?page={}'.format(jianshu_id, page+2)
            content_article_list = Http.get_content(url)
            article_list = self.parse_get_article_list(content_article_list)
            for item in article_list:
                self.work_set.add(item)
        return
示例#3
0
 def parse_content(self, content):
     parser = JianshuParser(content)
     self.answer_list += parser.get_answer_list()
示例#4
0
 def parse_content(self, content):
     parser = JianshuParser(content)
     self.answer_list += parser.get_answer_list()