예제 #1
0
    def __isElementLoadingSuccess(self):
        try:
            search_button = self.__driver.find_element_by_xpath(
                Query.search_button_xpath)
            inventor_input = self.__driver.find_element_by_id(
                Query.inventor_input_id)
            proposer_input = self.__driver.find_element_by_id(
                Query.proposer_input_id)
            time_select = self.__driver.find_element_by_id(
                Query.time_select_id)
            time_input = self.__driver.find_element_by_id(Query.time_input_id)

            if search_button.is_displayed() and inventor_input.is_displayed(
            ) and proposer_input.is_displayed() and time_select.is_displayed(
            ) and time_input.is_displayed():
                return True
            else:
                print("元素没显示")
                Config.writeLog("元素没显示")
                return False
        except Exception as e:
            print("元素抛异常")
            Config.writeLog("元素抛异常")
            Config.writeException(e)
            return False
예제 #2
0
 def collectingLawState(self, whichItem):
     try:
         Config.writeLog("点击按钮")
         WaitEngine.waitForSeconds(1)
         self.__click_law_state_button(whichItem)
         WaitEngine.waitForSeconds(2)
         if self.waitForLawStateDialog(whichItem):
             if self.__wait_for_law_state_loading() is True:
                 self.__check_for_colse_button()
                 self.__check_if_lost()
             else:
                 self.__itemCollection.collectingLawDataUnsuccessfully()
                 return
         else:
             self.__itemCollection.collectingLawDataUnsuccessfully()
             return
         Config.writeLog("法律状态")
         law_state = self.__get_law_state()
         if law_state.find("无数据") == -1:
             Config.writeLog("法律日期")
             law_update = self.__get_law_update()
         else:
             law_update = "无数据"
         Config.writeLog("关闭按钮")
         self.__close_law_state()
         Config.writeLog("采集成功")
         self.__itemCollection.collectingLawDataSuccessfully(
             law_update, law_state)
     except Exception as e:
         print("采集异常")
         Config.writeLog("采集异常")
         Config.writeException(e)
         self.__itemCollection.collectingLawDataUnsuccessfully()
예제 #3
0
 def startProgress(self):
     print("开始爬取进程")
     Config.writeLog("开始爬取进程")
     try:
         self.__connection.connectUrl()
     except Exception as e:
         Config.writeException(e)
예제 #4
0
 def startCollecting(self, patentTypeIndex, startItemIndex=0):
     self.__itemLength = 0
     self.__patentTypeIndex = patentTypeIndex
     self.__itemIndex = startItemIndex
     try:
         self.__itemLength = self.__driver.execute_script(
             "return document.getElementsByClassName(\"item\").length;")
     except Exception as e:
         Config.writeException(e)
         print(e)
         self.__itemLength = 0
         self.__progressController.collectingUnsuccessfully()
         return False
     if self.__itemIndex < self.__itemLength:
         Config.writeLog("开始收集")
         itemCollectiong = ItemCollection(
             self.__driver, self,
             CollectionResult.PATENT_TYPE[patentTypeIndex],
             self.__itemIndex)
         itemCollectiong.collectingData()
     else:
         Config.writeLog("收集失败")
         print("收集失败")
         self.__progressController.collectingUnsuccessfully(
             self.__itemIndex)
     Config.writeLog("itemIndex = {0}".format(self.__itemIndex))
     return True
예제 #5
0
 def __deal_with_element(self, str_script):
     try:
         self.__driver.execute_script(str_script)
         return True
     except Exception as e:
         Config.writeException(e)
         print(e)
         return False
예제 #6
0
 def refreshUrl(self):
     try:
         self.__driver.refresh()
         self.__progressController.loadUrlSuccessfully()
         return True
     except Exception as e:
         Config.writeException(e)
         self.__progressController.loadUrlUnsuccessfully()
         return False
예제 #7
0
 def connectUrl(self):
     try:
         self.__driver.get(self.__url)
         self.__progressController.loadUrlSuccessfully()
         return True
     except Exception as e:
         Config.writeException(e)
         self.__progressController.loadUrlUnsuccessfully()
         return False
예제 #8
0
 def changePage(self, pageIndex):
     try:
         self.__driver.execute_script(
             "document.getElementById(\"txt\").setAttribute(\"value\", " +
             str(pageIndex) + ");")
         self.__driver.execute_script(
             "document.getElementsByClassName(\"page_bottom\").item(0).childNodes.item(document.getElementsByClassName(\"page_bottom\").item(0).childNodes.length - 2).click();"
         )
         self.__progressController.changePageSuccessfully()
         return True
     except Exception as e:
         Config.writeException(e)
         print(e)
         self.__progressController.changePageUnsuccessfully()
         return False
예제 #9
0
 def __getPageSum(self):
     if self.__driver.page_source.find("没有检索到") != -1:
         print("没有检索到")
         return 0
     else:
         try:
             page_sum_str = self.__driver.execute_script(
                 "return document.getElementsByClassName(\"page_top\").item(0).childNodes.item(document.getElementsByClassName(\"page_top\").item(0).childNodes.length - 1).textContent;"
             )
             strTemp = page_sum_str[page_sum_str.find("共") + 1:-1]
             page_sum = int(strTemp[:strTemp.find("页")])
             return page_sum
         except Exception as e:
             Config.writeException(e)
             print(e)
             return None
예제 #10
0
 def __inputQueryTargetData(self, inventor, proposer, startDate,
                            patentTypeIndex):
     try:
         # 填写发明人
         self.__driver.execute_script("document.getElementById(\"" +
                                      Query.inventor_input_id +
                                      "\").setAttribute(\"value\",\"" +
                                      inventor + "\")")
         Config.writeLog("发明人")
         # 填写申请人
         self.__driver.execute_script("document.getElementById(\"" +
                                      Query.proposer_input_id +
                                      "\").setAttribute(\"value\",\"" +
                                      proposer + "\")")
         Config.writeLog("申请人")
         # 点击时间的check_list
         self.__driver.execute_script(
             "document.getElementById(\"" + Query.time_select_id +
             "\").firstElementChild.firstElementChild.click();")
         WaitEngine.waitForSeconds(2)  # 等待两秒
         self.__driver.execute_script(
             "document.getElementById(\"" + Query.time_select_id +
             "\").firstElementChild.childNodes[2].childNodes[2].firstElementChild.click();"
         )
         Config.writeLog("点击时间")
         # 填写时间
         self.__driver.execute_script("document.getElementById(\"" +
                                      Query.time_input_id +
                                      "\").setAttribute(\"value\",\"" +
                                      startDate + "\")")
         Config.writeLog("填写时间")
         # 选择专利类型
         self.__choosePatentType(patentTypeIndex)
         Config.writeLog("专利类型")
         WaitEngine.waitForSeconds(3)  # 等待三秒
         # 点击检索按钮
         self.__driver.execute_script(
             "document.getElementsByClassName(\"box-content-bottom\").item(0).childNodes.item(5).click();"
         )
         Config.writeLog("点击按钮")
         return True
     except Exception as e:
         Config.writeException(e)
         print(e)
         return False
예제 #11
0
 def __click_law_state_button(self, which_item):
     # 法律信息
     try:
         self.driver.execute_script(
             "document.getElementsByClassName(\"item-footer\").item(" +
             str(which_item) +
             ").childNodes.item(1).childNodes.item(3).click();")
     except Exception as e:
         Config.writeException(e)
         print(e)
         try:
             self.driver.execute_script(
                 "document.getElementsByClassName(\"item-footer\").item(" +
                 str(which_item) +
                 ").childNodes.item(1).childNodes.item(3).click();")
         except Exception as e:
             print(e)
             Config.writeException(e)
     return
예제 #12
0
 def collectingData(self):
     try:
         name = self.collecting_name()
         self.__item_data.set_name(name)
         type = self.collecting_type()
         self.__item_data.set_type(type)
         if name != "" and type != "":
             pLen = self.__driver.execute_script(
                 "return document.getElementsByClassName(\"item-content-body\")["
                 + str(self.__whichItem) + "].children.length;")
             for i in range(pLen):
                 strData = self.__driver.execute_script(
                     "return document.getElementsByClassName(\"item-content-body\")["
                     + str(self.__whichItem) + "].children[" + str(i) +
                     "].innerText;")
                 strTemp = str(strData)
                 if strTemp.find("申请号") != -1:
                     requestNumber = strTemp[7:]
                     self.__item_data.set_request_number(requestNumber)
                 elif strTemp.find("申请日") != -1:
                     requestDate = strTemp[6:]
                     self.__item_data.set_request_date(requestDate)
                 elif strTemp.find("公告") != -1 and strTemp.find("日") != -1:
                     announcement_date = strTemp[10:]
                     self.__item_data.set_announcement_date(
                         announcement_date)
                 elif strTemp.find("申请") != -1 and strTemp.find("人") != -1:
                     proposer_name = strTemp[11:-2]
                     self.__item_data.set_proposer_name(proposer_name)
                 elif strTemp.find("发明人") != -1:
                     inventor_name = strTemp[6:-2].replace('\n', '')
                     self.__item_data.set_inventor_name(inventor_name)
             Config.writeLog("准备收集法律信息")
             LawState(self.__driver,
                      self).collectingLawState(self.__whichItem)
         else:
             self.__pageCollection.collectingItemSuccessfullyWithOutData()
     except Exception as e:
         # print(e)
         Config.writeException(e)
         self.__pageCollection.collectingItemUnsuccessfully()
         return False
예제 #13
0
 def getSheet(self, which, mode):
     try:
         wb = self.getExcel(mode)
         if isinstance(which, str):
             if mode.upper() == "READ":
                 return wb.sheet_by_name(which)
             else:
                 return None
         elif isinstance(which, int):
             if mode.upper() == "READ":
                 return wb.sheet_by_index(which)
             elif mode.upper() == "WRITE":
                 return wb.get_sheet(which)
             else:
                 return None
         else:
             return None
     except Exception as e:
         Config.writeException(e)
         return
예제 #14
0
 def __writeToExcel(self, index, patentType, name, lawState, lawStateDate,
                    aDate, requestNumber, requestDate, proposerName,
                    inventorName):
     try:
         editor = ExcelUtil(Config.FILE_NAME).edit()
         sh = editor.getSheet(0)
         sh.write(index, 0, patentType)
         sh.write(index, 1, name)
         sh.write(index, 2, lawState)
         sh.write(index, 3, lawStateDate)
         sh.write(index, 4, aDate)
         sh.write(index, 5, requestNumber)
         sh.write(index, 6, requestDate)
         sh.write(index, 7, proposerName)
         sh.write(index, 8, inventorName)
         editor.commit()
     except Exception as e:
         print("写excel报错")
         Config.writeLog("写excel报错")
         Config.writeException(e)