CN110309118A - 一种深度网络数据挖掘机器人的设计方法 - Google Patents

一种深度网络数据挖掘机器人的设计方法 Download PDF

Info

Publication number
CN110309118A
CN110309118A CN201810180805.7A CN201810180805A CN110309118A CN 110309118 A CN110309118 A CN 110309118A CN 201810180805 A CN201810180805 A CN 201810180805A CN 110309118 A CN110309118 A CN 110309118A
Authority
CN
China
Prior art keywords
node
database
query
path
webdriver
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810180805.7A
Other languages
English (en)
Inventor
刘挺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Consulting Data Technology Co Ltd
Original Assignee
Beijing Consulting Data Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Consulting Data Technology Co Ltd filed Critical Beijing Consulting Data Technology Co Ltd
Priority to CN201810180805.7A priority Critical patent/CN110309118A/zh
Publication of CN110309118A publication Critical patent/CN110309118A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出了一种新的网络数据挖掘方法,通过对浏览器进行操作,获取相关信息,进行解析,然后存储到本地或者远程服务器中的方法。

Description

一种深度网络数据挖掘机器人的设计方法
技术领域
该领域属于网络机器人和网络数据挖掘领域,包含对网站进行操作,对网站数据的获取及网络数据库的存取等技术。
背景技术
该发明所涉及的背景方法包含网络编程技术,sql网络数据库技术,xml文件配置与解析技术。
发明内容
本发明主要提出了一种新型网络挖掘机器人的设计方法,该方法能够对特定网站操作,从而进行多层次的网络数据挖掘与存储。
该发明主要包含xml配置文件,浏览器文件,mysql数据库软件,控制软件。
Xml配置文件包含了该软件运行的所有配置信息,浏览器文件是控制软件操纵的对象,mysql数据库软件是存储数据的地方,控制软件是核心部分,该软件主导整个系统的运行,主要包含配置部分,启动部分,运行部分,解析部分,存储部分。
Xml配置文件主要包含系统运行的核心参数,主要包含query_frequence, query_preparation, query_content, database_config四个部分。
Query_frequence主要保存启动后数据采集的频率,包含start_page, query_frequence, query_step_interval, query_time,sleep_time这几个参数,start_page表示开始的页数,query_frequence主要包括采集的总次数,query_step_interval主要包含采集时,时间的跨度,query_step_times主要包含采集的跨度时的单位跨度,一般是1,sleep_time主要说明每次采集之后休息的时间。
Query_preparation主要说明获取过程中相关的参数,主要包含charset,reference_id_length, query_page_front, query_page_end, browser_method。Charset说明采集时候所采用的charset,reference_id_length说明生成的reference_id的长度,query_page_front说明采集时,页码之前的那段url的信息,query_page_end主要说明采集时,页码之后的那段url的信息。Browser_method主要说明采用哪种浏览器来启动,主要包括,firefox, phantomjs, chrome, opera, ie, safari, htmlunit, microsoftedge这些,还可以包括其他的浏览器。
Query_content是分析参数的主要保存部分。包含filter_list和query_level_node 两部分。Filter_list主要是说明需要保存的数据的信息,包含多个node节点,每个node节点分别包含name, default_value, regex_pattern和regex_method。Name是说明该节点的名字,default_value是说明该节点在默认状态下的保存值,regex_pattern是regex的参数,regex_method是说明采用何种方法来进行数据清洗。Query_level_node 主要包含多层次数据挖掘的信息,可以包含第一层次,第二层次,第n层次,每一层次如果还有下一层,则包含next_level_node_list,其中包含进入下一层次所采用的节点。每层的结构都类似,以第一层次节点来举例,该层次包含first_level_nodes和next_level_node_list节点。First_level_nodes包含top_node, common_node_path和nodes节点。Top_node主要说明获取该层次所需要数据是所采用的方法的内容,common_node_path则说明该层次进入下一层次时候,如果信息不完全,则补上该部分的信息,nodes则包含多个node,每个node包含name, select_type, select, attribute 和 text节点。Name节点是说明该节点的名字,select_type是说明该节点select的type, 一般是default, select节点是包含select方法的内容,主要是不同的select内容,使用@分开,比如div[class=portfolio-user]@div.portfolio-user-bio@span.text,attribute是说明该节点的attribute的内容,比如href等,text节点是说明该节点的text是否获取,一般是yes或者no。
Database_config是数据库构造部分。该节点包含database_local,database_remote节点,database_local节点包含database_connect, hostname, database_name,userid, password, table_name节点,database_connect是yes或者no,表示是否采用该数据库连接,hostname是说明该节点的host,包括端口,比如localhost:3306,database_name是需要连接的数据库的名称,userid是连接数据库采用的用户名,比如root,password是数据库连接使用的password,table_name是连接的数据库的表格的名称。Database_remote节点是说明进行远程连接的数据结构,包含,remote_database_connect, remote_hostname,remote_database_name, remote_userid, remote_password, remote_table_name节点。Remote_database_connect是说明是否采用该连接,一般是yes或者no,remote_hostname是进行该连接时候的host,一般是需要连接的ip地址和接受的端口,remote_userid是登陆采用的用户名,remote_password是连接采用的密码,remote_table_name是连接时接触到的数据库表格名称。
浏览器文件是软件操纵的对象,主要是各个浏览器及其driver,包含,比如,firefox 和geckodriver, chrome和chromedriver, phatomjs, opera和operadriver, ie和iedriver, safari和safaridriver,htmlunit,microsoftedge和microsoftwebdriver,还有其他的浏览器版本。
mysql数据库软件是mysql数据库软件系统,主要是用于存储获取的网络数据。下载并且安装该软件即可。
控制软件是系统的核心部分,该软件主导整个系统的运行,主要包含配置部分,启动部分,运行部分,解析部分,存储部分。
配置部分是最开始的部分,该部分主要是有一个constructure的类,该类包含所有的参数,运行时候,通过实例化该类,然后读取或者存储该实例的属性,实现整个系统的运行。该类别主要包含如下的属性,String query_start_page, String query_frequence, String query_sleep_time, String query_step_interval, String query_step_times, String construct_file, String query_url, String charset, Stringquery_page_front, String query_page_end, String browser_method, String top_node, String common_node_path, String seconde_level_common_node_path,Listnodes, HashMap<Integer, HashMap> node_map, String top_seconde_level_node,List reference_nodes, HashMap<Integer, HashMap> seconde_level_node_map,HashMap<Integer, HashMap> filter_node_map, List seconde_level_node_list,String block_word。所有的属性都是private,只能通过getter, setter进行获取和修改。这些属性都能够从配置文件中读取内容并且配置到constructure的属性中,配置方法如下,先把config文件通过document = reader.read(file)的方式读取到document中,然后通过element.selectSingleNode(xpath).getText()的方法,将xml配置文件中对应的属性的内容读取到construct的属性中,其中xpath是相应属性在xml配置文件中的xpath位置。这些属性中有一些属性需要单独生成,node_map, seconde_level_node_map, 和filter_node_map。node_map是包含query_level_nodes中first_level_nodes中的所有的node 信息,主要用来存储这些node的值,生成的hashmap结构如下:{i: {name:name_content, select:select_content, select_type: select_type_content, attribute:attribute_content, text: text_content}},每个i代表第i个node, 后面是它的属性。Seconde_level_node_map的构造与node_map的构造一样,只不过代表的是 第二层次的node 的信息,第n层的信息构造类似。Filter_node_map则代表query_content中filter_list中的node的信息,生成的hashmap结构如下{i:{name: name_content, default_value: default_value_content, regex_pattern: regex_pattern_content, regex_method:regex_method_content}}。
启动部分主要是生成需要操纵的浏览器的webdriver,对浏览器进行操作。操纵方法如下:根据从construct中读取的browser_method属性,对不同的浏览器采用不同的启动方式,主要内容如下,对browser_method进行switch,如果是firefox,则采用System.setProperty(“webdriver.gecko.driver”, geckdriver_path);DesiredCapabilities capabilities = DesiredCapablilities.firefox();capabilities.setCapability(“marionette”, true); driver = new FirefoxDriver(capabilities)的方法生成webdriver, 其中geckdriver_path是geckodriver的存放地址,可以使相对地址,也可以是绝对地址。如果是chrome,则采用System.setProperty(“webdriver.chrome.driver”, chromedriver_path); WebDriver driver = newChromeDriver();的方法生成webdriver,其中chromedriver_path是chromedriver的存放地址,相对地址或者绝对地址。如果是phantomjs,则采用DesiredCapabilities caps =new DesiredCapabilities(); caps.setJavascriptEnabled(true);capts.setCapability(“takesScreenshot”, true); caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, phantomjs_path);WebDriver driver = new PhantomJSDriver(caps); 其中phantomjs_path是phantomjs可执行性文件的存放位置。如果是opera,则采用System.setProperty(“webdriver.opera.driver”, operadriver_path); WebDriver driver = newOperaDriver()的方式生成webdriver,其中operadriver_path是operadriver的存放位置,相对路径或者绝对路径。如果是ie,则采用System.setProperty(“webdriver.ie.driver”, iedriver_path); WebDriver driver = newInternetExplorerDriver();的方式生成webdriver,其中iedriver_path是iedriver的存放位置,相对路径或者绝对路径。如果是safari,则采用System.setProperty(“webdriver.safari.driver”, safaridriver_path); WebDriver driver = newSafariDriver();的方式生成webdriver,其中safaridriver_path是safaridriver的存放路径,绝对路径或者相对路径。如果是htmlunit,则采用driver = new HtmlUnit();的方式生成webdriver,如果是microsoftedge,则采用System.setProperty(“webdriver.edge.driver”,microsoftedgedriver_path); WebDriver driver = newEdgeDriver();的方式生成webdriver,其中microsoftedgedriver_path是microsoftedgedriver的存放位置,绝对路径或者相对路径。启动之后生成webdriver,可以通过它对浏览器进行操纵,从而获取数据或者进行其他操作。
运行部分是控制软件操纵浏览器进行模拟用户行为,包括点击,输入url等,其中输入url主要采用webdriver.get(url)的方法进行,点击的行为是先通过driver找到该元素,然后通过element.click()的方式实施点击操作,比如element_click =driver.findElement(By.xpath(“xapth_element”)); element_click.click();xpath_element是需要寻找的element的xpath。
解析部分是通过对获取的网页数据进行进一步解析,将需要的数据存入construct中的filter_list和各个层次的node,从而进行下一步的数据存储。在通过上一步的控制软件对webdriver进行操作之后,比如输入url, 进行点击等,到达数据解析的部分,首先使用String page_source = webdriver.getPageSource();的方式获取该页面所有的网页信息,然后通过doc = Jsoup.parse(page_source)的方式获取该网页信息的解析部分,然后读取construct中对应层次的node的信息,读取select_type,一般是default,然后读取select,该select包含进行select查找的内容,每段select使用@进行隔开,每两个@之间代表一个select的内容,当获取到doc之后,根据@的数量将select中的内容进行切割,然后针对每段切分后的select的内容,使用element_next = element_prev.select(select_content)的方式进行select循环获取,直到达到最终需要查找的内容,并且将其存入对应的node的value的属性中。比如div[class=portfolio-user-info]@span.text,进行分解然后获取之后,所采用的方法应该是document.select(“div[class=portfolio-user-info]”).select[“span.text”]。对每一层次,如果有下一层次,则包含一个next_level_reference的节点,该节点包含node的名字,如果该node属于该节点,则判断该节点是否完整,如果不完整,则加入common_path组成完整的url,从而通过该url进行下一层次的数据获取。进行数据获取之前,可能需要再次进行运行部分的操作,即操作webdriver完成一系列动作,从而达到所需要的页面。
数据存储部分主要是说明数据存储进入数据库的部分。该部分包含进行存入本地数据库的类型和进行远程数据库存取的类型。两者的结构差不多,主要说明存入本地数据库的构造原理。在进行启动模块之前,先通过construct获取对应的hostname, database_name, userid, password和tablename,通过Connecton conn =DriverManager.getConnection(url, user_id, password);的方式获取数据库连接,其中url,是进行数据库连接的url,主要形式是url = “jdbc:mysql://”+host+”/”+database+”问号characterEncoding=utf8”.其中host是construct中包含的hostname,database是contruct中的database_name,问号是英文的问号。然后进行执行启动部分,运行部分,解析部分,当到达最终所需页面,并且解析完毕,即所有的查找的node信息全部获取,这个时候,开始进行数据存储部分了,对于每一条存储好的信息,根据filter_list中的node的顺序,生成一个sql植入语句,主要形式是insert into database_table values(value1,value2, …valuen);其中database_table是construct中的tablename,value1, value2…valuen是filter_list中node的值按照顺序依次排列下来的。然后通过Statement s =conn.createStatement(); int rsI = s.executeUpdate(sqlStaement); s.close();的方式插入数据库。其中sqlStatement是生成的sql植入语句。如果是remote的数据库存储,该形式与local的方式是一样的。

Claims (6)

1.要求对该系统的架构及其衍生方法进行保护。
2.要求对系统的控制软件的启动部分及其衍生方法进行保护。
3.要求对系统的控制软件的解析部分及其衍生方法进行保护。
4.要求对系统控制软件的数据存储部分及其衍生方法进行保护。
5.要求对系统控制软件的运行部分机器衍生方法进行保护。
6.要求对整个系统采用xml配置文件,浏览器文件,mysql数据库软件和控制软件的架构及其衍生方法进行保护。
CN201810180805.7A 2018-03-06 2018-03-06 一种深度网络数据挖掘机器人的设计方法 Pending CN110309118A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810180805.7A CN110309118A (zh) 2018-03-06 2018-03-06 一种深度网络数据挖掘机器人的设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810180805.7A CN110309118A (zh) 2018-03-06 2018-03-06 一种深度网络数据挖掘机器人的设计方法

Publications (1)

Publication Number Publication Date
CN110309118A true CN110309118A (zh) 2019-10-08

Family

ID=68073413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810180805.7A Pending CN110309118A (zh) 2018-03-06 2018-03-06 一种深度网络数据挖掘机器人的设计方法

Country Status (1)

Country Link
CN (1) CN110309118A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112925966A (zh) * 2019-12-05 2021-06-08 天津挺哥网络科技有限公司 一种新型暗网挖掘机器人的设计方法
CN112925970A (zh) * 2019-12-05 2021-06-08 天津挺哥网络科技有限公司 一种新型暗网全网挖掘机器人的设计方法
CN113392298A (zh) * 2020-03-14 2021-09-14 天津挺哥网络科技有限公司 一种基于xml数据库的定点暗网情报挖掘分析系统的设计方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105988994A (zh) * 2015-02-06 2016-10-05 北京询达数据科技有限公司 Web领域分布式实时抽取系统
CN106649773A (zh) * 2016-12-27 2017-05-10 北京大数有容科技有限公司 一种大数据协同分析工具平台
CN107193967A (zh) * 2017-05-25 2017-09-22 南开大学 一种多源异构行业领域大数据处理全链路解决方案
CN108228151A (zh) * 2016-12-22 2018-06-29 北京询达数据科技有限公司 一种新型网络机器人的设计方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105988994A (zh) * 2015-02-06 2016-10-05 北京询达数据科技有限公司 Web领域分布式实时抽取系统
CN108228151A (zh) * 2016-12-22 2018-06-29 北京询达数据科技有限公司 一种新型网络机器人的设计方法
CN106649773A (zh) * 2016-12-27 2017-05-10 北京大数有容科技有限公司 一种大数据协同分析工具平台
CN107193967A (zh) * 2017-05-25 2017-09-22 南开大学 一种多源异构行业领域大数据处理全链路解决方案

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112925966A (zh) * 2019-12-05 2021-06-08 天津挺哥网络科技有限公司 一种新型暗网挖掘机器人的设计方法
CN112925970A (zh) * 2019-12-05 2021-06-08 天津挺哥网络科技有限公司 一种新型暗网全网挖掘机器人的设计方法
CN113392298A (zh) * 2020-03-14 2021-09-14 天津挺哥网络科技有限公司 一种基于xml数据库的定点暗网情报挖掘分析系统的设计方法

Similar Documents

Publication Publication Date Title
KR101665152B1 (ko) 컴퓨팅 장치, 비즈니스 데이터의 획득 방법 및 컴퓨터 판독 가능 저장 매체
US7882090B2 (en) Customizing help content
US20060015839A1 (en) Development of software systems
US20070169008A1 (en) External programmatic interface for IOS CLI compliant routers
CN101211336B (zh) 可视化生成查询文件的系统及方法
US9633112B2 (en) Method of retrieving attributes from at least two data sources
US20090235164A1 (en) Text file interface support in an object oriented application
CN110309118A (zh) 一种深度网络数据挖掘机器人的设计方法
KR102033416B1 (ko) 문서로부터 추출되는 데이터를 생성하는 방법 및 그 장치
CN102760150A (zh) 基于属性重现和标签路径的网页抽取方法
CN110737432B (zh) 一种基于词根表的脚本辅助设计方法及装置
CN108228151A (zh) 一种新型网络机器人的设计方法
CN113127442B (zh) 数据模型的可视化的方法、装置及存储介质
CN113177168A (zh) 一种基于Web元素属性特征的定位方法
JP3914081B2 (ja) アクセス権限設定方法および構造化文書管理システム
US20080077641A1 (en) System and method for editing contract clauses in static web pages
US20020154628A1 (en) Server for gathering and providing information
Žemla et al. Design and Implementation of the Application for the Irrigation System
Schroeder et al. Flexible automatic converting of NC programs. A cross-compiler for structured text
Škrbić et al. Bibliographic records editor in XML native environment
JP3624248B2 (ja) 入力データの取扱方法
Fox et al. Pro Oracle Application Express 4
TWI764491B (zh) 文字資訊自動探勘方法及文字資訊自動探勘系統
Zaynetdinov Data representation for the rules editor
Bickmore Reflux: Technical Report

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: Room 262, Zhongguancun Science and Technology City Exhibition Center, intersection of Zhongguancun Avenue and Xihuan North Road, Baodi District, Tianjin

Applicant after: Tianjin Xunda Data Technology Co.,Ltd.

Address before: 100080 room 107-22, 1st floor, 127-1 Zhongguancun North Street, Haidian District, Beijing

Applicant before: BEIJING XUNDATA TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
RJ01 Rejection of invention patent application after publication

Application publication date: 20191008

RJ01 Rejection of invention patent application after publication