CN113254749A - 一种基于http协议的数据爬取方法及装置 - Google Patents
一种基于http协议的数据爬取方法及装置 Download PDFInfo
- Publication number
- CN113254749A CN113254749A CN202110647216.7A CN202110647216A CN113254749A CN 113254749 A CN113254749 A CN 113254749A CN 202110647216 A CN202110647216 A CN 202110647216A CN 113254749 A CN113254749 A CN 113254749A
- Authority
- CN
- China
- Prior art keywords
- request
- data
- record table
- webpage
- crawled
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 127
- 230000009193 crawling Effects 0.000 title claims abstract description 34
- 230000004044 response Effects 0.000 claims abstract description 44
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 238000010801 machine learning Methods 0.000 claims description 9
- 238000001914 filtration Methods 0.000 claims description 3
- 238000012549 training Methods 0.000 claims description 2
- 230000009471 action Effects 0.000 abstract description 3
- 230000008859 change Effects 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 101150035983 str1 gene Proteins 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 108090000623 proteins and genes Proteins 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于http协议的数据爬取方法及装置,该方法包括:获取待爬取页面的超文本标记语言,对超文本标记语言进行解析,获取待爬取页面的网页元素和JavaScript方法;将获取到的网页元素的相关数据存储到对应的网页元素记录表中,并将JavaScript方法的相关数据存储到对应的JavaScript方法记录表中;生成获取网页元素对应的响应数据的第一请求,模拟发送第一请求,并在接收到响应数据时将第一请求的相关数据存储至对应的请求记录表中;根据网页元素记录表、JavaScript方法记录表和请求记录表,生成关联记录表。将网页元素、js方法以及各个键进行关联,以便在网页发生变化时,根据关联关系还能够正常爬取到数据,不需要在对爬虫改动代码或者代码改动极小,以完成爬取动作。
Description
技术领域
本发明涉及网页爬取技术领域,特别涉及一种基于http协议的数据爬取方法及装置。
背景技术
在传统的爬虫技术中,当所爬取的页面发生变化后,程序员往往会重新维护爬虫工具,否则无法对页面内容进行有效爬取。当页面频发变化时,爬虫工具的维护工作量非常大,需要耗费非常大的人力成本和时间成本。
发明内容
本发明提供一种基于http协议的数据爬取方法及装置,可以在网页发生变化时正常爬取到页面数据。
第一方面,本发明提供的基于http协议的数据爬取方法,包括:
获取待爬取页面的超文本标记语言,对所述超文本标记语言进行解析,获取所述待爬取页面的网页元素和JavaScript方法;
将获取到的网页元素的相关数据存储到对应的网页元素记录表中,并将所述JavaScript方法的相关数据存储到对应的JavaScript方法记录表中;
生成获取所述网页元素对应的响应数据的第一请求,模拟发送所述第一请求,并在接收到所述响应数据时将所述第一请求的相关数据存储至对应的请求记录表中;
根据所述网页元素记录表、所述JavaScript方法记录表和所述请求记录表,生成关联记录表;在所述关联记录表中,所述网页元素、JavaScript方法和所述响应数据中与所述网页元素对应的键关联。
第二方面,本发明提供的基于http协议的数据爬取装置,包括:
超文本获取模块,用于获取待爬取页面的超文本标记语言,对所述超文本标记语言进行解析,获取所述待爬取页面的网页元素和JavaScript方法;
第一数据记录模块,用于将获取到的网页元素的相关数据存储到对应的网页元素记录表中,并将所述JavaScript方法的相关数据存储到对应的JavaScript方法记录表中;
第二数据记录模块,用于生成获取所述网页元素对应的响应数据的第一请求,并模拟发送所述第一请求,在接收到所述响应数据时,将所述第一请求的相关数据存储至对应的请求记录表中;
数据关联模块,用于根据所述网页元素记录表、所述JavaScript方法记录表和所述请求记录表,生成关联记录表;在所述关联记录表中,所述网页元素、JavaScript方法和所述响应数据中与所述网页元素对应的键关联。
本发明实施例提供的基于http协议的数据爬取方法及装置,将网页元素、js方法以及各个键进行关联,以便在网页发生变化时,例如位置发生变化、名称发生变化时,根据关联关系还能够正常爬取到数据,不需要在对爬虫改动代码或者代码改动极小,以完成爬取动作,不需要像现有技术中在网页发生变化时需要进行大量的爬虫维护工作。
附图说明
图1为本发明一实施例中基于http协议的数据爬取方法的流程示意图。
具体实施方式
第一方面,本发明提供一种基于http协议的数据爬取方法,如图1所示,该方法可以包括如下步骤:
S110、获取待爬取页面的超文本标记语言,对所述超文本标记语言进行解析,获取所述待爬取页面的网页元素和JavaScript方法;
其中,超文本标记语言,即html。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。超文本标记语言的结构包括“头”部分(英语:Head)和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。
其中,对超文本标记语言的解析方式有多种,例如,正则算法、机器学习算法、指定规则等方式。通过对超文本标记语言进行解析,可以获得网页中的所有网页元素以及JavaScript文件,将JavaScript文件下载下来进行解析,便可以得到在网页中用到的JavaScript方法。
其中,网页元素可以是网页中的输入框、图片、视频、超链接、文字等各种形式的元素。
当然,通过超文本标记语言,还可以获得网页结构,所谓的网页结构是指排版顺序、嵌套结构等。当一个网页发生变化时,网页结构可能会发生变化,即各个网页元素在网页中的位置会发生变化,而网页元素的内容一般不会发生变化。
其中,JavaScript方法,可以简称为JS方法,js方法存储于js文件中,JS文件指的是包含JavaScript代码行的文本文档。当用户需要从web服务器中的js文件里找到JavaScript代码来实现web页面上的功能时,web页面就会引用这些JavaScript代码。它具有关闭或者打开Web浏览器窗口或标签、鼠标悬停、表单验证序列等功能,这些JavaScript代码还可用于创建具有交互功能的下拉框等,它们通常被导入HTML中头或主体部分。可见,通过js方法可以实现网页的多种功能。
在具体实施时,获取待爬取页面的超文本标记语言的方式有多种,下面提供一种:模拟发送一个请求,为了与S130中的请求进行区分,这里将该请求称之为第二请求,也就是说,生成获取所述待爬取页面的超文本标记语言的第二请求,模拟发送所述第二请求,所述第二请求的地址为所述待爬取页面的地址。
可理解的是,发送请求采用的JavaScript方法只能由浏览器来执行,如果脱离了浏览器,只能模拟发送请求。所谓的模拟发送请求,是指模拟浏览器发送请求,该请求的地址为所述待爬取页面的地址。通过模拟浏览器发送请求的方式,在登陆待爬取页面时可以获得待爬取页面的超文本标记语言。
举例来说,待爬取页面为个人中心的页面,模拟发送登录该页面的第二请求后,获取到对应的html,并通过解析html可以获得多个网页元素,例如,头像(标识为h_img)、姓名(标识为nickname)、性别(标识为sex)和家庭住址(标识为myaddress)。
S120、将获取到的网页元素的相关数据存储到对应的网页元素记录表中,并将所述JavaScript方法的相关数据存储到对应的JavaScript方法记录表中;
其中,网页元素的相关数据,可以包括网页元素的标识、网页元素的值,将网页元素的标识、网页元素的值存储至网页元素记录表中,具体可以参见下表1:
表1
字段编号 | 字段名称 | 字段类型 | 说明 |
Id | 标识 | Bigint | 唯一标志该表格,自增 |
ItemId | 网页元素的标识 | Varchar(50) | 用于存储网页元素的标识 |
ItemValue | 网页元素的值 | Varchar(100) | 用于存储网页元素的值 |
其中,JavaScript方法的相关数据,可以包括js方法的标识、js方法中的请求路径、js方法中的参数、js方法的名称等,将这些信息存储到JavaScript方法记录表中,具体可以参见下表2:
表2
字段编号 | 字段名称 | 字段类型 | 说明 |
JsId | 唯一标志 | Bigint | 唯一标志 |
JsUrl | Js方法的路径 | Varchar(100) | Js文件的路径 |
MothedName | Js方法的名称 | Varchar(50) | Js的方法的名称 |
Params | 方法参数 | Varchar(500) | Js方法中的参数 |
例如,通过对个人中心的页面对应的html解析得到两个js方法,将这两个方法存储到JavaScript方法记录表,可以得到下表3:
表3
JsId | jsUrl | MothedName | Params |
1 | http://xxxx1 | getBill | |
2 | http://xxxx2 | getUserInfo | userCode |
S130、生成获取所述网页元素对应的响应数据的第一请求,模拟发送所述第一请求,并在接收到所述响应数据时将所述第一请求的相关数据存储至对应的请求记录表中;
其中,第一请求为http请求,即基于http协议发送的请求,也可以称为xhr请求。
其中,第一请求的目的是获取响应数据,而响应数据与网页元素是对应也就是说,响应数据中的各个键与网页元素是对应的。
仍以待爬取页面为个人中心的页面为例,模拟发送第一请求之后,得到的响应数据为一串json格式的数据,在该串数据中包括多个键和键值,{‘username’:’jim’,headimg:’http://www.abc.com/img/123.jpg’,’gender’:’0’,’address’:’山东省济南市经十路XXX号’},其中,username、headimg、gender、address为键,而jim、http://www.abc.com/img/123.jpg、0、山东省济南市经十路XXX号为对应键的键值。在该举例中的各个键与网页元素是一一对应的,具体对应关系可以参见下表4:
表4
网页元素 | 响应数据中的键 |
h_img | headimg |
nickname | username |
sex | gender |
myaddress | address |
在具体实施时,所述生成获取所述网页元素对应的响应数据的第一请求,并模拟发送所述第一请求,可以包括:获取所述超文本标记语言中的头标签和Script标签;根据所述头标签和Script标签,生成第一请求,并模拟发送所述第一请求。
其中,头标签,即head标签,html的头标签中存储有请求地址、请求方式、编码规则等信息;Script标签,即JavaScript文件对应的标签,Script标签是用来指定在网页上执行哪个JavaScript的。Script标签可以直接包含JavaScript代码,或者指向一个JavaScript外链URL。通过这两个标签,可以形成第一请求,然后模拟浏览器发送该第一请求。
此处采用模拟方的原因与第二请求相同,即,发送请求采用的JavaScript方法只能由浏览器来执行,如果脱离了浏览器,只能模拟发送第一请求,即模拟浏览器发送第一请求。
在实际中,除了根据头标签和Script标签形成第一请求进行模拟发送的方式之外,还可以采用其它方式,例如,根据获取所述响应数据的JavaScript方法中的请求路径,生成第一请求,并模拟发送所述第一请求。
由上表2可以知道,在js方法中包括请求路径,即请求地址,如果在浏览器中,执行该js方法就可以得到响应数据,而在非浏览器中模拟该js方法就可以得到响应数据,因此在js方法中获取请求路径,根据该请求路径形成第一请求,模拟发送该第一请求即可。
举例来说,在上文举例中的个人中心页面中解析到的js方法中,有一个方法为getUserInfo,这个方法是用来获取用户信息的。根据该方法中的相关参数可以生成第一请求,然后模拟浏览器发送该第一请求。
当发送地址对应的服务器根据该第一请求返回响应数据后,将第一请求的相关数据存储到请求记录表中,具体参见下表5:
表5
字段编号 | 字段名称 | 字段类型 | 说明 |
Id | 唯一标识 | Bigint | |
Url | 请求地址 | Varchar(100) | |
Head | 请求头信息 | Varchar(1000) | |
Result | 请求结果 | Varchar(1000) |
在具体实施时,由于在html中获取到的js方法可能有多个,有些方法用于获取与网页元素对应的响应数据,有些方法用于在获取响应数据之前进行一些中间运算,例如在登录某页面时,只有用户输入的信息是正确的,才能允许登录该网页进而获取到各种信息,此时执行中间运算对应的js方法为对用户输入的信息进行验证所需要的js方法。再例如,在发送第一请求时需要某种参数,而这种参数需要采用执行中间运算的js方法进行计算得到,比如,在第一请求中需要参数a,因此需要中间运算的js方法计算出a。而与网页元素或键对应的js方法是获取响应数据时对应的js方法,即执行第一请求时对应的js方法,而非中间算法对应的js方法。
S140、根据所述网页元素记录表、所述JavaScript方法记录表和所述请求记录表,生成关联记录表;在所述关联记录表中,所述网页元素、JavaScript方法和所述响应数据中与所述网页元素对应的键关联。
在具体实施时,为了方便关联,可以在关联记录表中记录标识信息,例如生成如下表6所示出的关联记录表,以(key:value)的形式存储在下表中。
表6
ID | 网页元素 | 响应数据中的键 | js方法的标识 |
1 | h_img | headimg | 2 |
2 | nickname | username | 2 |
3 | sex | gender | 2 |
4 | myaddress | address | 2 |
其中,js方法的标识2对应的是getUserInfo方法。可见,在所述关联记录表中,所述网页元素的标识、所述JavaScript方法的标识和所述响应数据中网页元素对应的键相关联。
当然,关联方式也不仅限于上述一种,还可以原来各个记录表的基础正增加映射关系形成关联记录表,例如,在上述表1中,增加对应js方法的标识,形成下表7:
表7
在上述表5中,增加对应js方法的标识,形成下表8:
表8
这样表7、表8和表3之间形成的关联,此时可以将这三个表作为关联记录表,用来展示三者之间的关联。
在具体实施时,刚开始各个记录表可以采用人工关联,将人工关联的数据作为训练样本对机器学习模型进行训练,然后采用机器学习模型进行关联,从而节省人工成本。其中,机械学习模型可以采用相似度算法判断字符串之间的关联性,进而进行记录表关联。也就是说,本申请提供的方法中生成关联记录表的步骤可以包括:采用预设机器学习模型生成所述关联记录表;其中,所述机器学习模型学习字符串之间的关联性,并根据学习到的关联性生成所述关联记录表。
可理解的是,相似度算法有多种,而本申请中并不是单纯的两个字符串越相近就越需要关联,例如,对于网页元素与响应数据中的键之间,越相似,可能越具有关联性;而对于网页元素与js方法的标识之间,以及响应数据中的键与js方法的标识之间并不适用,两者之间的关联性需要学习,例如学习哪些网页元素、响应数据中的键通常与哪个js方法关联。
在具体实施时,针对网页元素与响应数据中的键之间的相似性,本申请中机器学习模型可以采用编辑距离确定所述网页元素和所述响应数据中的键之间的关联性。编辑距离也可以称为Levenshtein距离(也叫做Edit Distance),是指两个字符串之间,由一个字符串转成另一个字符串所需的最少编辑操作的次数,如果它们的距离越大,说明它们越是不同。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。例如,将kitten一字转成sitting,需要经历sitten(k→s)、sittin(e→i)、sitting(→g)。如果str1="ivan",str2="ivan",那么经过计算后编辑距离等于0,没有经过转换,相似度=1;如果str1="ivan1",str2="ivan2",str1的"1"转换"2",转换了一个字符,所以编辑距离是1,相似度经过公式计算等于0.8。其中,相似度公式为r=1-Math/Max(str1.length,str2.length)),Math为编辑距离,公式为1-编辑距离/两个字符串长度的最大值。
在具体实施时,可以采用开源爬虫进行数据爬取,而互联网上有多种不同形式的网页,为了满足不同形式数据的爬取要求,可以采用如下步骤S150~S170进行爬虫配置,在配置完成后,可以采用此爬虫进行数据爬取。而且由于采用上述步骤S110~S140不需要对爬虫进行代码维护或修改很小,可谓一劳永逸。
S150、根据数据爬取需求,从预设组件数据库中选择所需的组件,并将各个组件按照执行顺序形成组件序列;一个所述组件为执行一个爬取步骤所对应的计算机代码形成的模块;
可理解的是,将每一个爬取步骤对应的代码作为一个组件,也就是说,一个步骤对应一个组件。所谓的步骤,例如,爬取网页时的登陆的步骤、进入列表的步骤、翻页的步骤、下拉翻滚的步骤等。由于不同的组件对应不同的步骤,也就是说,各个组件的执行顺序对应各个步骤的执行顺序,因此需要对各个组件进行排序,相当于按照执行顺序对各个步骤进行排序。其中,预设组件数据库中包括各种形式的网页的各个爬取步骤对应的组件。
S160、根据所述组件序列,对爬虫进行配置,所述配置内容至少包括爬取javascript网页内容;
可理解的是,对所述所需爬虫进行配置的过程实际上是生成配置文件的过程,得到配置文件后所需爬虫即配置完成。因此上述步骤S160的具体过程可以包括:根据所述组件序列和预设的说明文件,确定所述爬虫的配置文件;其中,所述说明文件中存储有用于生成所述配置文件的说明信息,这些说明信息可以辅助用户生成配置文件,例如,生成配置文件的流程步骤,在每一步骤中需要的信息等。
S170、采用配置完成的所述爬虫进行数据爬取,得到爬取数据;
在具体实施时,S170还可以包括:采用局部敏感哈希算法对所述爬取数据进行去重过滤。在实际应用中,数据爬取后得到的爬取数据可能存在重复页面和/或存在广告,此时可以采用局部敏感哈希算法对所述爬取数据进行去重过滤。其中,局部敏感哈希算法即simhash算法。
由于本申请实施例可以根据数据爬取需求选择出所需的代码块,然后对选择出的代码块进行排序,即根据数据爬取需求选择多个爬取步骤进而对各个爬取步骤进行组合排序,这样配置成的爬虫可以满足用户的各种需求,方法简单、易配置,可以实现对不同网站、不同形式的数据的爬取。
针对现有技术中在爬取的页面发生变化之后,程序人员需要重新维护爬虫工具,工作量很大的问题,本发明不仅仅是简单爬取网页元素和对应的值,同时把网页中的js文件也一同爬取,并通过js解析技术将页面中用到的js方法解析出来,同时模拟发送请求,获取响应数据,从而将三者关联起来,即便是页面频繁变化,也能够在不改变代码或者改动极小的情况下,完成页面爬取工作。
可理解的是,本申请提供的方法为在真正爬取之前的准备工作,在爬取之前,将网页元素、js方法以及各个键进行关联,以便在网页发生变化时,例如位置发生变化、名称发生变化时,根据关联关系还能够正常爬取到数据,不需要在对爬虫改动代码或者代码改动极小,以完成爬取动作。不需要像现有技术中在网页发生变化时需要进行大量的爬虫维护工作。
在具体实施时,可以每隔一段时间执行一次本方法,使得爬虫工具可以随着页面的变化,自动解析网页元素、js方法、键之间的关系,对映射关系进行调整,适应网页频繁变化的情景,在一定程度上做到随需应变,从而使得爬虫满足一定的时效性要求。这样在网页发生变化时,不需要研发人员或维护人员进行代码维护操作。
可见,在不改变爬虫代码的情况下,完全适应页面的频繁变化,更贴近应用实际,更易解决实际问题。即便修改代码,修改也非常小,而且修改频率也很低,可以节约运维成本。由于增加了一个机器学习模块,随着适用时间的增长,对爬虫代码的调整频率也越来越低。
第二方面,本申请提供一种基于http协议的数据爬取装置,该装置可以包括:
超文本获取模块,用于获取待爬取页面的超文本标记语言,对所述超文本标记语言进行解析,获取所述待爬取页面的网页元素和JavaScript方法;
第一数据记录模块,用于将获取到的网页元素的相关数据存储到对应的网页元素记录表中,并将所述JavaScript方法的相关数据存储到对应的JavaScript方法记录表中;
第二数据记录模块,用于生成获取所述网页元素对应的响应数据的第一请求,并模拟发送所述第一请求,在接收到所述响应数据时,将所述第一请求的相关数据存储至对应的请求记录表中;
数据关联模块,用于根据所述网页元素记录表、所述JavaScript方法记录表和所述请求记录表,生成关联记录表;在所述关联记录表中,所述网页元素、JavaScript方法和所述响应数据中与所述网页元素对应的键关联。
可理解的是,第二方面提供的装置与第一方面提供的方法相对应,其有关内容的解释、实施方式、举例、有益效果等内容可以参考第一方面中的相应部分,此处不再赘述。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种基于http协议的数据爬取方法,其特征在于,包括:
获取待爬取页面的超文本标记语言,对所述超文本标记语言进行解析,获取所述待爬取页面的网页元素和JavaScript方法;
将获取到的网页元素的相关数据存储到对应的网页元素记录表中,并将所述JavaScript方法的相关数据存储到对应的JavaScript方法记录表中;
生成获取所述网页元素对应的响应数据的第一请求,模拟发送所述第一请求,并在接收到所述响应数据时将所述第一请求的相关数据存储至对应的请求记录表中;
根据所述网页元素记录表、所述JavaScript方法记录表和所述请求记录表,生成关联记录表;在所述关联记录表中,所述网页元素、JavaScript方法和所述响应数据中与所述网页元素对应的键关联。
2.根据权利要求1所述的方法,其特征在于,所述获取待爬取页面的超文本标记语言,包括:生成获取所述待爬取页面的超文本标记语言的第二请求,模拟发送所述第二请求,所述第二请求的地址为所述待爬取页面的地址。
3.根据权利要求1所述的方法,其特征在于,所述生成获取所述待爬取页面的超文本标记语言的第二请求,包括:获取所述超文本标记语言中的头标签和Script标签,根据所述头标签和Script标签,生成第一请求。
4.根据权利要求1所述的方法,其特征在于,所述生成获取所述网页元素对应的响应数据的第一请求,包括:根据获取所述响应数据的JavaScript方法中的请求路径,生成第一请求。
5.根据权利要求1所述的方法,其特征在于,在所述关联记录表中,所述网页元素的标识、所述JavaScript方法的标识和所述响应数据中网页元素对应的键相关联。
6.根据权利要求1所述的方法,其特征在于,所述生成关联记录表,包括:采用预设机器学习模型生成所述关联记录表;其中,所述机器学习模型为预先训练得到,并采用编辑距离确定所述网页元素和所述响应数据中的键之间的关联性。
7.根据权利要求1所述的方法,其特征在于,还包括:
根据数据爬取需求,从预设组件数据库中选择所需的组件,并将各个组件按照执行顺序形成组件序列;一个所述组件为执行一个爬取步骤所对应的计算机代码形成的模块;
根据所述组件序列,对爬虫进行配置,所述配置内容至少包括爬取javascript网页内容;
采用配置完成的所述爬虫进行数据爬取,得到爬取数据。
8.根据权利要求7所述的方法,其特征在于,所述根据所述组件序列,对爬虫进行配置,包括:根据所述组件序列和预设的说明文件,确定所述爬虫的配置文件;其中,所述说明文件中存储有用于生成所述配置文件的说明信息。
9.根据权利要求7所述的方法,其特征在于,还包括:采用局部敏感哈希算法对所述爬取数据进行去重过滤。
10.一种基于http协议的数据爬取装置,其特征在于,包括:
超文本获取模块,用于获取待爬取页面的超文本标记语言,对所述超文本标记语言进行解析,获取所述待爬取页面的网页元素和JavaScript方法;
第一数据记录模块,用于将获取到的网页元素的相关数据存储到对应的网页元素记录表中,并将所述JavaScript方法的相关数据存储到对应的JavaScript方法记录表中;
第二数据记录模块,用于生成获取所述网页元素对应的响应数据的第一请求,并模拟发送所述第一请求,在接收到所述响应数据时,将所述第一请求的相关数据存储至对应的请求记录表中;
数据关联模块,用于根据所述网页元素记录表、所述JavaScript方法记录表和所述请求记录表,生成关联记录表;在所述关联记录表中,所述网页元素、JavaScript方法和所述响应数据中与所述网页元素对应的键关联。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110647216.7A CN113254749B (zh) | 2021-06-10 | 2021-06-10 | 一种基于http协议的数据爬取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110647216.7A CN113254749B (zh) | 2021-06-10 | 2021-06-10 | 一种基于http协议的数据爬取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254749A true CN113254749A (zh) | 2021-08-13 |
CN113254749B CN113254749B (zh) | 2022-08-23 |
Family
ID=77187476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110647216.7A Active CN113254749B (zh) | 2021-06-10 | 2021-06-10 | 一种基于http协议的数据爬取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254749B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113987318A (zh) * | 2021-11-01 | 2022-01-28 | 盐城金堤科技有限公司 | 页面监控方法、装置、设备及计算机存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130024441A1 (en) * | 2011-07-22 | 2013-01-24 | Alibaba Group Holding Limited | Configuring web crawler to extract web page information |
CN105608134A (zh) * | 2015-12-18 | 2016-05-25 | 盐城工学院 | 一种基于多线程的网络爬虫系统及其网页爬取方法 |
CN107463669A (zh) * | 2017-08-03 | 2017-12-12 | 深圳市华傲数据技术有限公司 | 解析爬虫爬取的网页数据的方法及装置 |
CN107609150A (zh) * | 2017-08-28 | 2018-01-19 | 湖北省楚天云有限公司 | 一种基于页面元素选取的交互式网络爬虫创建方法及系统 |
CN110020044A (zh) * | 2017-09-22 | 2019-07-16 | 北京国双科技有限公司 | 一种爬虫的爬取方法及装置 |
CN110688118A (zh) * | 2019-10-28 | 2020-01-14 | 郑州阿帕斯科技有限公司 | 一种网页优化方法及装置 |
CN112256944A (zh) * | 2020-10-26 | 2021-01-22 | 四川长虹电器股份有限公司 | 基于JMeter的网站数据自动爬取方法 |
CN112800305A (zh) * | 2021-01-12 | 2021-05-14 | 厦门渊亭信息科技有限公司 | 一种基于网络爬虫的知识图谱数据抽取方法及装置 |
-
2021
- 2021-06-10 CN CN202110647216.7A patent/CN113254749B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130024441A1 (en) * | 2011-07-22 | 2013-01-24 | Alibaba Group Holding Limited | Configuring web crawler to extract web page information |
CN105608134A (zh) * | 2015-12-18 | 2016-05-25 | 盐城工学院 | 一种基于多线程的网络爬虫系统及其网页爬取方法 |
CN107463669A (zh) * | 2017-08-03 | 2017-12-12 | 深圳市华傲数据技术有限公司 | 解析爬虫爬取的网页数据的方法及装置 |
CN107609150A (zh) * | 2017-08-28 | 2018-01-19 | 湖北省楚天云有限公司 | 一种基于页面元素选取的交互式网络爬虫创建方法及系统 |
CN110020044A (zh) * | 2017-09-22 | 2019-07-16 | 北京国双科技有限公司 | 一种爬虫的爬取方法及装置 |
CN110688118A (zh) * | 2019-10-28 | 2020-01-14 | 郑州阿帕斯科技有限公司 | 一种网页优化方法及装置 |
CN112256944A (zh) * | 2020-10-26 | 2021-01-22 | 四川长虹电器股份有限公司 | 基于JMeter的网站数据自动爬取方法 |
CN112800305A (zh) * | 2021-01-12 | 2021-05-14 | 厦门渊亭信息科技有限公司 | 一种基于网络爬虫的知识图谱数据抽取方法及装置 |
Non-Patent Citations (1)
Title |
---|
李岚清等: "网络资源自动采集技术研究", 《电子元器件与信息技术》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113987318A (zh) * | 2021-11-01 | 2022-01-28 | 盐城金堤科技有限公司 | 页面监控方法、装置、设备及计算机存储介质 |
CN113987318B (zh) * | 2021-11-01 | 2024-03-12 | 盐城天眼察微科技有限公司 | 页面监控方法、装置、设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113254749B (zh) | 2022-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10445377B2 (en) | Automatically generating a website specific to an industry | |
US7941420B2 (en) | Method for organizing structurally similar web pages from a web site | |
CN101176058B (zh) | 使用已知高级查询的查询修订 | |
TWI322950B (zh) | ||
US11550856B2 (en) | Artificial intelligence for product data extraction | |
CN102073726B (zh) | 搜索引擎系统的结构化数据的引入方法和装置 | |
US20120317472A1 (en) | Creation of data extraction rules to facilitate web scraping of unstructured data from web pages | |
US9639622B2 (en) | Image processing system, image processing method, program, and non-transitory information storage medium | |
US20070043707A1 (en) | Unsupervised learning tool for feature correction | |
Uzun et al. | An effective and efficient Web content extractor for optimizing the crawling process | |
CN113254749B (zh) | 一种基于http协议的数据爬取方法及装置 | |
CN104881428A (zh) | 一种信息图网页的信息图提取、检索方法和装置 | |
US11256770B2 (en) | Data-driven online business name generator | |
JP2004220251A (ja) | 情報抽出規則作成システム、情報抽出規則作成方法及び情報抽出規則作成プログラム | |
CN113918794A (zh) | 企业网络舆情效益分析方法、系统、电子设备及存储介质 | |
CN114444487A (zh) | 一种数据处理方法、装置、设备及介质 | |
US8886653B2 (en) | Information processing device, computer readable recording medium, and information processing method | |
JP5456260B2 (ja) | 翻訳処理プログラム、翻訳処理方法及び翻訳処理 | |
US9521182B1 (en) | Systems and methods related to identifying authorship of internet content | |
CN108595453B (zh) | Url标识映射获取方法及装置 | |
US20030176996A1 (en) | Content of electronic documents | |
JP5380874B2 (ja) | 情報検索方法、プログラム及び装置 | |
CN113569044A (zh) | 一种基于自然语言处理技术的网页文本内容的分类方法 | |
CN111767482A (zh) | 一种聚焦网络爬虫自适应爬取方法 | |
KR101499685B1 (ko) | 키워드 트리 제공 방법 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220729 Address after: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong Applicant after: Inspur Genersoft Co.,Ltd. Address before: 250100 No. 2877 Kehang Road, Sun Village Town, Jinan High-tech District, Shandong Province Applicant before: SHANDONG INSPUR GENESOFT INFORMATION TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |