Esempio n. 1
0
    def save(self,task_id):
        """
        保存录制的站点规则
        :param task_id: 任务id
        :return:
        """

        try:
            task_name = self.prev.basic.site_name_edit.text()
            task_url = self.prev.basic.site_url_edit.text()
            theme = self.prev.basic.task_theme_box.itemData(self.prev.basic.task_theme_box.currentIndex())
            category = self.prev.basic.task_category_box.itemData(self.prev.basic.task_category_box.currentIndex())
            rule_content = {}
            if self.basic_info_check(task_name,task_url,theme,category):
                # ==========================基本信息===================================
                basic = {}
                basic['id'] = self.task_id
                basic["name"] = task_name
                basic["url"] = task_url
                basic["theme"] = theme
                basic["category"] = category
                basic['state'] = 0
                basic['user'] = '******'
                basic['acqType'] = self.prev.step_label.acq_type
                rule_content["basic"] = basic

                # ==========================规则信息===================================
                navi_data = Table_Util.get_navi_table(self.prev.transcribe.step.navi_table)
                flip_data = Table_Util.get_flip_table(self.prev.transcribe.step.flip_table)
                field_data = Table_Util.get_field_table(self.prev.transcribe.step.field_table)


                rule_content['rule'] = {}
                rule_content['rule']['navi'] = navi_data
                rule_content['rule']['flip'] = flip_data
                rule_content['rule']['field'] = field_data
                if self.task_id == 0:
                    id = BasicDao.insert_single_task(rule_content)
                    if id:
                        self.task_id = id
                else:
                    BasicDao.update_single_task(rule_content)
                QMessageBox.information (self.prev,
                                     "温馨提示",
                                     "保存成功")
                print(rule_content)
        except Exception as a:
            QMessageBox.warning (self.prev,
                                 "温馨提示",
                                 "保存出错啦"+traceback.format_exc())
Esempio n. 2
0
 def deal_data(self, data):
     try:
         info = json.loads(data)
         acq_type = self.prev.prev.step_label.acq_type
         table_list = [
             self.prev.step.navi_table, self.prev.step.flip_table,
             self.prev.step.field_table
         ]
         self.target_table = list(
             filter(lambda x: not x.isHidden(), table_list))[0]
         Table_Util.insert_single_data(self.target_table, info)
         self.add_more_data()
     except Exception as a:
         QMessageBox.warning(self.prev.step, "温馨提示",
                             "规则录制出现异常:{}".format(traceback.format_exc()))
Esempio n. 3
0
 def deal_data_once(self, data):
     try:
         info_list = json.loads(data)
         acq_type = RestService.widget.prev.step_label.acq_type
         table_list = [
             RestService.widget.step.navi_table,
             RestService.widget.step.flip_table,
             RestService.widget.step.field_table
         ]
         self.target_table = list(
             filter(lambda x: not x.isHidden(), table_list))[0]
         if isinstance(info_list, list):
             for info in info_list:
                 Table_Util.insert_single_data(self.target_table, info)
         else:
             Table_Util.insert_single_data(self.target_table, info_list)
     except Exception as a:
         QMessageBox.warning(RestService.widget.step, "温馨提示",
                             "规则录制出现异常:{}".format(traceback.format_exc()))
Esempio n. 4
0
 def getHtml(self, *k, **v):
     try:
         html = k[0]
         start = int(re.findall(r'\d+', self.diff_str)[0])
         selectors = etree.HTML(html)
         while start <= 100:
             self.diff_str = self.diff_str.replace(str(start),
                                                   str(start + 1))
             self.xpath_before_list[self.index] = self.diff_str
             xpath = "/".join(self.xpath_before_list)
             content = selectors.xpath(xpath)
             if len(content):
                 resultContent = ''.join(
                     content[0].xpath('string(.)').replace('\n',
                                                           '').split())
                 info = {}
                 info['xpath'] = xpath
                 info['text'] = resultContent
                 Table_Util.insert_single_data(self.target_table, info)
             start = start + 1
     except Exception as a:
         print(traceback.format_exc())
    def load_data(self, task_id):
        """
        根据站点id加载采集的录制规则
        :param task_id:
        :return:
        """
        theme_list = BasicDao.get_all_theme()
        self.widget.task_theme_box.addItem("请选择", "0")
        theme_code_list = ['0']
        for theme in theme_list:
            self.widget.task_theme_box.addItem(theme['name'], theme['code'])
            theme_code_list.append(theme['code'])
        info = BasicDao.task_info_by_id(task_id)
        if info:
            # =================================基本信息=====================================================
            self.widget.site_name_edit.setText(info['name'])
            self.widget.site_url_edit.setText(info['url'])
            self.widget.task_theme_box.setCurrentIndex(
                theme_code_list.index(info['theme']))
            index = self.widget.category_code_list.index(info['category'])
            if index > 0:
                index = index - 1
            self.widget.task_category_box.setCurrentIndex(index)
            # ==================================采集模式=====================================================
            self.widget.prev.mode.mode_1.setPixmap(
                QPixmap('../images/mode-1.png'))
            self.widget.prev.mode.mode_2.setPixmap(
                QPixmap('../images/mode-2.png'))
            self.widget.prev.mode.mode_3.setPixmap(
                QPixmap('../images/mode-3.png'))
            self.widget.prev.step_label.acq_type = info['acqType']
            if info['acqType'] != 0:
                mode_list = [
                    self.widget.prev.mode.mode_1, self.widget.prev.mode.mode_2,
                    self.widget.prev.mode.mode_3
                ]
                mode_list[info['acqType'] - 1].setPixmap(
                    QPixmap('../images/s-mode-{}.png'.format(
                        str(info['acqType']))))

            # ==================================列表内容=====================================================
            rule = json.loads(info['rule'])
            if rule['navi']:
                for info in rule['navi']:
                    Table_Util.insert_single_data(
                        self.widget.prev.transcribe.step.navi_table, info)

            #  ==================================翻页内容=====================================================
            if rule['flip']:
                for info in rule['flip']:
                    Table_Util.insert_single_data(
                        self.widget.prev.transcribe.step.flip_table, info)
            #  ==================================详情内容=====================================================
            if rule['field']:
                for info in rule['field']:
                    Table_Util.insert_single_data(
                        self.widget.prev.transcribe.step.field_table, info)