CN110955813A - 一种数据爬取方法及装置 - Google Patents
一种数据爬取方法及装置 Download PDFInfo
- Publication number
- CN110955813A CN110955813A CN201811130421.0A CN201811130421A CN110955813A CN 110955813 A CN110955813 A CN 110955813A CN 201811130421 A CN201811130421 A CN 201811130421A CN 110955813 A CN110955813 A CN 110955813A
- Authority
- CN
- China
- Prior art keywords
- page
- data
- crawling
- elements
- type
- 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
Links
- 230000009193 crawling Effects 0.000 title claims abstract description 128
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000003860 storage Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 abstract description 22
- 238000013461 design Methods 0.000 abstract description 4
- 238000004590 computer program Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005096 rolling process Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种数据爬取方法及装置,涉及爬虫技术领域,主要目的在于设计通用的爬虫拟人操作流程,简化用户的设置过程,提高数据爬取效率。本发明主要的技术方案为:根据用户指定爬取的页面元素类型爬取当前页面中的页面元素,每种页面元素类型对应用户预置的一种元素操作;根据所述页面元素的类型对所述页面元素执行对应的元素操作;爬取所述当前页面中根据所述元素操作更新得到的数据。本发明主要用于爬取页面数据。
Description
技术领域
本发明涉及爬虫技术领域,尤其涉及一种数据爬取方法及装置。
背景技术
随着网络爬虫的发展,爬虫的功能已经不单单是通过请求一个页面来获取该页面的内容这么简单,现代爬虫需要通过浏览器打开页面,在页面中模仿人的操作行为来达到爬取所需数据的目的,而如何规划复杂这些操作(比如,先点击操作还是先滑动页面等操作)让页面达到加载用户所需的数据成为一个难题。
现有的很多网络爬虫都提供爬虫拟人操作的功能,但这种功能一般需要在爬虫开始工作之前,由用户针对所要爬取的页面中页面元素的操作方式以及具体位置进行操作的预先设置,比如第一步点击某个位置,第二步翻页,第三步滚动等等,对于用户而言,该操作流程的设置不仅繁琐,还需用户具有一定的编程能力。并且,这种预设操作流程的方式还依赖于网站的页面结构,对于不同结构的网站,用户还需要针对该网站设置不同的爬虫操作流程,当这类待爬取网站的数量较大时,用户将需要花费大量时间为爬虫针对网站设置对应的爬虫操作流程,严重影响了数据爬取效率。
发明内容
有鉴于此,本发明提供一种数据爬取方法及装置,主要目的在于设计通用的爬虫拟人操作流程,简化用户的设置过程,提高数据爬取效率。
为达到上述目的,本发明主要提供如下技术方案:
一方面,本发明提供了一种数据爬取方法,该方法包括:
根据用户指定爬取的页面元素类型爬取当前页面中的页面元素,每种页面元素类型对应用户预置的一种元素操作;
根据所述页面元素的类型对所述页面元素执行对应的元素操作;
爬取所述当前页面中根据所述元素操作更新得到的数据。
优选地,根据所述页面元素的类型对所述页面元素执行对应的元素操作具体包括:
当所述页面元素的类型为点击元素时,对应的元素操作包括元素点击操作;和/或,
当所述页面元素的类型为翻页元素时,对应的元素操作包括数字翻页操作;和/或,
当所述页面元素的类型为标签元素时,对应的元素操作为标签切换操作。
优选地,所述根据用户指定爬取的页面元素类型爬取当前页面中的页面元素包括:
滚动所述当前页面,判断滚动后的页面内容是否存在更新数据;
若存在更新数据,则重复滚动所述当前页面;
若不存在更新数据,则根据用户指定的页面元素类型爬取页面元素。
优选地,所述根据用户指定的页面元素类型爬取页面元素包括:
当所述页面元素类型为翻页元素时,爬取翻页元素中页码最小的一个数字翻页元素;
当所述页面元素类型为标签元素时,按照所述标签元素中的元素排序爬取第一个元素。
优选地,所述根据所述页面元素的类型对所述页面元素执行对应的元素操作包括:
对点击元素执行元素点击操作后,若当前页面中存在数据更新,则对所述点击元素重复执行元素点击操作;
对翻页元素中页码为当前页面下一页的数字翻页元素执行数字翻页操作,若当前页面中存在数据更新,则按照页码顺序对下一页的数字翻页元素执行数字翻页操作;
对标签元素按照标签元素中的元素排序逐一执行标签切换操作。
优选地,爬取所述当前页面中根据所述元素操作更新得到的数据包括:
在所述当前页面根据元素操作加载页面数据后,爬取加载后页面的页面数据;
对比所述加载后页面与所述当前页面的页面数据;
提取所述页面数据中更新的数据。
另一方面,本发明还提供了一种数据爬取装置,该装置包括:
元素爬取单元,用于根据用户指定爬取的页面元素类型爬取当前页面中的页面元素,每种页面元素类型对应用户预置的一种元素操作;
操作执行单元,用于根据所述页面元素的类型对所述元素爬取单元得到的页面元素执行对应的元素操作;
数据爬取单元,用于爬取所述当前页面中根据所述操作执行单元执行的元素操作更新得到的数据。
优选地,所述操作执行单元具体包括:
点击操作执行模块,用于当所述页面元素的类型为点击元素时,对应执行的元素操作包括元素点击操作;
翻页操作执行模块,用于当所述页面元素的类型为翻页元素时,对应执行的元素操作包括数字翻页操作;
标签切执行模块,用于当所述页面元素的类型为标签元素时,对应执行的元素操作为标签切换操作。
优选地,所述元素爬取单元包括:
判断模块,用于滚动所述当前页面,判断滚动后的页面内容是否存在更新数据;
滚动操作模块,用于当所述判断模块确定滚动后的页面内容存在更新数据时,重复滚动所述当前页面;
爬取模块,用于当所述判断模块确定滚动后的页面内容不存在更新数据时,根据用户指定的页面元素类型爬取页面元素。
优选地,所述爬取模块还用于:
当所述页面元素类型为翻页元素时,爬取翻页元素中页码最小的一个数字翻页元素;
当所述页面元素类型为标签元素时,按照所述标签元素中的元素排序爬取第一个元素。
优选地,所述操作执行单元包括:
点击操作执行模块,用于对点击元素执行元素点击操作后,若当前页面中存在数据更新,则对所述点击元素重复执行元素点击操作;
翻页操作执行模块,用于对翻页元素中页码为当前页面下一页的数字翻页元素执行数字翻页操作,若当前页面中存在数据更新,则按照页码顺序对下一页的数字翻页元素执行数字翻页操作;
标签切换操作执行模块,用于对标签元素按照标签元素中的元素排序逐一执行标签切换操作。
优选地,数据爬取单元包括:
数据爬取模块,用于在所述当前页面根据元素操作加载页面数据后,爬取加载后页面的页面数据;
数据对比模块,用于对比所述加载后页面与所述当前页面的页面数据;
数据提取模块,用于提取所述数据对比模块对比页面数据中更新的数据。
为了实现上述目的,根据本发明的另一方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的数据爬取方法。
为了实现上述目的,根据本发明的另一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的数据爬取方法。
依据上述本发明所提出的数据爬取方法及装置,主要用于爬虫在爬取页面数据过程中,能够对页面中的页面元素根据用户设置的指定类型进行有针对性的爬取,并在爬取到页面元素后,根据具体的页面元素类型执行对应的预置元素操作,进而获取元素操作后该页面中更新得到的数据。相对于现在爬虫中需要用户针对页面结构进行元素操作的编辑,本发明则是通过设置一套针对不同类型页面元素的元素操作,并根据用户的选择对页面中的页面元素进行筛选,进而对选出的页面元素执行对应的元素操作,以使得对页面元素的操作不依赖该页面的页面结构,对页面中需要拟人操作而获取的页面数据,爬虫可基于用户的选择以及预置的元素操作自动提取出对应的页面数据,提高了数据爬取效率,也简化用户的设置过程。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提出的一种数据爬取方法的流程图;
图2示出了本发明实施例提出的另一种数据爬取方法的流程图;
图3示出了本发明实施例提出的一种数据爬取装置的组成框图;
图4示出了本发明实施例提出的另一种数据爬取装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种数据爬取的方法,如图1所示,该方法是爬虫在爬取页面数据时,通过对页面中指定的页面元素执行对应的元素操作以爬取其对应的数据内容的方式。具体步骤包括:
101、根据用户指定爬取的页面元素类型爬取当前页面中的页面元素。
其中,页面元素类型的划分是根据所要完成的具体功能,在本发明实施例中,页面元素类型则是用于区分页面元素在展示时所具有的元素操作种类。一般地,网站页面中常用的页面元素的类型包括有点击元素、翻页元素、标签元素等。对于不同种类的页面元素类型,其对应与用户预置的一种元素操作,比如,对于点击元素,对应于元素点击操作,通过该元素点击操作,爬虫可以实现对页面元素的点击,以及判断该页面元素是否需要重复点击等操作;对于翻页元素,对应于数字翻页操作,通过该数字翻页操作,爬虫可以实现对页面中的数据按页码翻页更新页面数据的操作;对于标签元素,对应于标签切换操作,通过该标签切换操作,爬虫可以根据标签元素中的内容对页面中的数据进行标签切换更新,进而爬取更新数据的操作。
需要说明的是,一种类型的页面元素所对应的元素操作是由用户根据爬虫爬取数据的任务需求而预先设置的,因此,对于不同需求的爬取任务,用户也可以自定义元素操作的具体内容。因此,用户在执行本发明实施例之前,除了设置所要爬取的页面元素的类型外,还需要指定该类型的页面元素所对应的元素操作。
102、根据页面元素的类型对该页面元素执行对应的元素操作。
本步骤在实际应用过程中,是将爬取到的页面元素逐一地执行对应的元素操作,每操作一个页面元素后,执行步骤103,获取更新后的数据内容。其中,页面元素可根据爬取的时间从先到后逐一执行对应的元素操作,也可以根据页面元素的类型分类后逐一地执行页面元素执行对应的元素操作。
需要说明的是,在本实施例中,页面元素的类型一般是在网站页面制作时所使用的通用的类型分类标签,爬虫通过识别页面元素的类型分类标签来确定该页面元素所需执行的元素操作。
103、爬取当前页面中根据元素操作更新得到的数据。
本步骤中,根据元素操作更新得到的数据是指在原页面中,对页面元素执行对应的元素操作后,新增加或替换得到的数据内容。因此,对于经过元素操作而导致页面窗口更新的情况不在本发明实施例的说明范围内。具体地说,本步骤爬取的数据是基于页面元素所在的网站页面,即元素操作不会导致网站页面的页面进程或线程结束,而是在该页面(当前页面)中基于元素操作而加载新的数据。
结合上述的实现方式可以看出,本发明实施例所采用的数据爬取方法,是由爬虫在当前页面中进行数据爬取的同时,根据用户指定的页面元素类型爬取对应的页面元素,并对这些页面元素执行对应的元素操作,该元素操作也是由用户根据爬取任务的需求所定义的拟人操作,通过这行元素操作的执行会对当前页面中的数据内容产生更新,获取所更新的内容,实现在页面中通过元素操作获取新的页面数据内容的目的。本发明实施例在对爬虫进行设置时,无需考虑网站页面的结构,只需将页面元素的类型与元素操作进行设置,同时指定所需爬取的页面元素的类型即可,方便了用户的使用,提升了数据爬取的效率。
以下为了更加详细地说明本发明提出的一种数据爬取方法,特别是针对点击元素、翻页元素和标签元素在数据爬取过程中如何操作,本发明实施例将结合具体示例说明所提出了一种数据爬取方法,如图2所示,该方法的具体步骤如下:
201、根据用户指定爬取的页面元素类型爬取当前页面中的页面元素。
在执行本步骤之前,爬虫要先获取用户指定爬取的页面元素类型,以及用户所设置的页面元素类型与元素操作的对应关系,在本发明实施例中,点击元素对应于元素点击操作、翻页元素对应于数字翻页操作、标签元素对应于标签切换操作。
爬虫在执行本步骤时,先爬取所加载的当前页面中的页面元素,按照用户指定爬取的页面元素类型筛选所爬取的页面元素,在爬取完当前页面中的页面元素后,将针对页面元素的类型执行后续数据爬取步骤。但是,对于一些内容较多的页面,其在加载时往往是根据所需展示的尺寸进行加载,即一个页面会根据用户的操作进行多次加载,其中的用户操作是指用户对页面的滚动操作。通过该滚动操作,页面会请求加载之前未加载的数据内容。需要说明是,滚动操作与上述的元素操作不同,其区别在于操作的对象不同,滚动操作是针对整体页面执行的操作,而元素操作则是针对页面中的某个页面元素执行的操作。
在执行滚动操作后,爬虫等待页面加载数据完成后(即滚动操作所对应的页面加载请求被响应后),会再次爬取该页面中的数据内容,与加载前的页面内容进行对比,以此,来判断该页面在执行滚动操作后是否存在更新数据,若存在,说明该页面中通过滚动操作能够加载新的页面内容,此时,爬虫将爬取新的页面内容中的页面元素,并在爬取完页面元素后重复执行滚动操作,直至滚动后的页面内容不存在更新数据。当滚动后的页面内容不存在更新数据时,爬虫将所爬取的页面元素根据用户指定的页面元素类型进行筛选,得到所需的页面元素。
本步骤在爬取页面元素时,对于不同类型的页面元素爬取的方式也有所不同。需要说明的是,不同的页面元素爬取方式是由于页面元素类型不同所造成的,具体的,对于点击元素,该类型的页面元素一般是不可拆分的,因此,爬取该类型的页面元素只需爬取其元素标识、元素类型等信息即可。而对于翻页元素和标签元素,这些类型的页面元素一般为多个元素的组合,比如,翻页元素一般是由多个数字翻页元素所构成的,而标签元素一般是由多个分类标签的元素所构成的,而其中的每个数字翻页元素或分类标签在页面中均可以单独执行点击或勾选等操作。因此,在爬取翻页元素时,爬虫将爬取翻页元素中页码最小的一个数字翻页元素;而在爬取标签元素时,爬虫将按照该标签元素中分类标签的元素排序爬取第一个元素。
在获取到页面中的页面元素后,爬虫将根据页面元素的类型分别执行对应的元素操作,以获取对应的更新数据。而对于不同类型的页面元素将根据步骤202至204的内容获取更新数据。
202、爬取点击元素执行元素点击操作后对应的更新数据。
对于点击元素,爬虫执行对应的元素点击操作,在页面响应该元素点击操作并更新了页面数据后,爬虫将再次爬取页面数据,并将其与执行元素点击操作之前爬取的页面数据进行对比,以此判断该页面中是否存在数据更新,若存在,爬虫将爬取所更新的数据,同时,再次对该点击元素执行元素点击操作,如此重复,直至页面不再更新数据为止。之后,对下一个点击元素执行元素点击操作并获取其对应的更新数据。
需要说明的是,本步骤是在用户指定获取点击元素,并且当前页面中存在点击元素的情况下执行的,若不满足该情况,则可跳过本步骤,执行后续的步骤203或204。
203、爬取翻页元素执行数字翻页操作后对应的更新数据。
对于翻页元素,爬虫执行对应的数字翻页操作,在执行时,爬虫将根据当前页面的页码对页翻页元素中的下一页的数据翻页元素执行数字翻页操作,比如,若当前页面的页码为第3页,那么爬虫将对翻页元素中的第4页执行数字翻页操作。在页面响应该数字翻页操作并更新了页面数据后,爬虫将再次爬取该页面的数据,并将其与执行数字翻页操作之前爬取的页面数据进行对比,以此判断该页面中是否存在数据更新,若存在,爬虫将爬取所更新的数据,同时,按照页码顺序对下一页的数字翻页元素(即第5页)执行数字翻页操作,直至页面不再更新数据为止。之后,对该页面中的下一个翻页元素执行字翻页操作并获取其对应的更新数据。
本步骤的执行同样需要满足由用户指定获取翻页元素,并且当前页面中存在翻页元素的条件,若不满足,则可跳过本步骤,执行后续的步骤204。
204、爬取标签元素执行标签切换操作后对应的更新数据。
对于标签元素,爬虫执行对应的标签切换操作,在执行时,爬虫将根据该标签元素中分类标签的元素排序逐一执行标签切换操作,即先对第一个分类标签执行标签切换操作,在页面响应该标签切换操作并更新了页面数据后,爬虫将再次爬取该页面的数据,并将其与执行标签切换操作之前爬取的页面数据进行对比,以此判断该页面中是否存在数据更新,若存在,则提取该页面中所更新的数据内容,之后再对第二个分类标签执行标签切换操作,直至将标签元素中的分类标签全部执行一遍。而对于分类标签在执行标签切换操作之后没有数据更新时,则直接跳过,对下一个分类标签执行标签切换操。
经过上述的操作,爬虫就实现对当前页面中的页面元素进行爬取以及执行对应的元素操作,进而获取更新数据的过程。而上述过程中的步骤202至步骤204并不存在逻辑上的顺序关系。并且,图2所示的实施例仅是针对点击元素、翻页元素和标签元素这三类页面元素的一种可行的数据爬取流程,对于其他基于上述步骤执行的顺序变化,同样为本发明实施例对数据爬取流程的可行实施例。比如,爬虫在具体执行时,也可以先爬取当前页面中用户指定类型的页面元素,并对每个页面元素通过步骤202至204中的一项获取对应的更新数据,在完成所有页面元素的数据爬取后,再对该页面执行滚动操作,获取滚动后页面更新的数据内容,继而重复前述的爬取过程,直至页面无法继续滚动后,完成对该页面的数据爬取。
通过上述的实施例已详细地介绍了对爬虫爬取页面数据的具体流程,而为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的数据爬取方法。
此外,为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的数据爬取方法。
进一步的,作为对上述方法的实现,本发明实施例提供了一种数据爬取装置,该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置用于爬取页面数据,特别是对页面中需要执行元素操作的页面元素,获取其在执行元素操作后更新的数据内容,具体如图3所示,该装置包括:
元素爬取单元31,用于根据用户指定爬取的页面元素类型爬取当前页面中的页面元素,每种页面元素类型对应用户预置的一种元素操作;
操作执行单元32,用于根据所述页面元素的类型对所述元素爬取单元31得到的页面元素执行对应的元素操作;
数据爬取单元33,用于爬取所述当前页面中根据所述操作执行单元32执行的元素操作更新得到的数据。
进一步的,如图4所示,所述操作执行单元32具体包括:
点击操作执行模块321,用于当所述页面元素的类型为点击元素时,对应执行的元素操作包括元素点击操作;
翻页操作执行模块322,用于当所述页面元素的类型为翻页元素时,对应执行的元素操作包括数字翻页操作;
标签切执行模块323,用于当所述页面元素的类型为标签元素时,对应执行的元素操作为标签切换操作。
进一步的,如图4所示,所述元素爬取单元31包括:
判断模块311,用于滚动所述当前页面,判断滚动后的页面内容是否存在更新数据;
滚动操作模块312,用于当所述判断模块311确定滚动后的页面内容存在更新数据时,重复滚动所述当前页面;
爬取模块313,用于当所述判断模块311确定滚动后的页面内容不存在更新数据时,根据用户指定的页面元素类型爬取页面元素。
进一步的,如图4所示,所述爬取模块313还用于:
当所述页面元素类型为翻页元素时,爬取翻页元素中页码最小的一个数字翻页元素;
当所述页面元素类型为标签元素时,按照所述标签元素中的元素排序爬取第一个元素。
进一步的,如图4所示,所述操作执行单元32包括:
点击操作执行模块321还用于,对点击元素执行元素点击操作后,若当前页面中存在数据更新,则对所述点击元素重复执行元素点击操作;
翻页操作执行模块322还用于,对翻页元素中页码为当前页面下一页的数字翻页元素执行数字翻页操作,若当前页面中存在数据更新,则按照页码顺序对下一页的数字翻页元素执行数字翻页操作;
标签切换操作执行模块323还用于,对标签元素按照标签元素中的元素排序逐一执行标签切换操作。
进一步的,如图4所示,数据爬取单元33包括:
数据爬取模块331,用于在所述当前页面根据元素操作加载页面数据后,爬取加载后页面的页面数据;
数据对比模块332,用于对比所述加载后页面与所述当前页面的页面数据,即将数据爬取模块331在加载页面数据后爬取加载后页面的页面数据与当前页面在加载数据之前的页面数据进行对比;
数据提取模块333,用于提取所述数据对比模块332对比页面数据中更新的数据。
综上所述,本发明实施例所采用的数据爬取方法及装置,主要是对爬虫爬取数据的流程进行优化设计,通过对页面元素的分类,可实现让用户对不同类型的页面元素设置对应的元素操作,以获取对应的更新数据。在具体执行过程中,本发明实施例根据页面元素的类型差异,分别提出了获取不同类型页面元素所对应的更新数据的流程设计,而这些流程均可有爬虫自动完成,无需用户根据不同页面结构进行区别设计,简化了用户的使用,从而提升了爬虫获取数据的效率。
所述数据爬取装置包括处理器和存储器,上述元素爬取单元、操作执行单元和数据爬取单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现爬虫的拟人操作流程,简化用户对爬虫的设置过程,提高数据爬取效率。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述数据爬取方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数据爬取方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:根据用户指定爬取的页面元素类型爬取当前页面中的页面元素,每种页面元素类型对应用户预置的一种元素操作;根据所述页面元素的类型对所述页面元素执行对应的元素操作;爬取所述当前页面中根据所述元素操作更新得到的数据。
而本文中的设备不限定是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:根据用户指定爬取的页面元素类型爬取当前页面中的页面元素,每种页面元素类型对应用户预置的一种元素操作;根据所述页面元素的类型对所述页面元素执行对应的元素操作;爬取所述当前页面中根据所述元素操作更新得到的数据。
进一步的,根据所述页面元素的类型对所述页面元素执行对应的元素操作具体包括:
当所述页面元素的类型为点击元素时,对应的元素操作包括元素点击操作;和/或,
当所述页面元素的类型为翻页元素时,对应的元素操作包括数字翻页操作;和/或,
当所述页面元素的类型为标签元素时,对应的元素操作为标签切换操作。
进一步的,所述根据用户指定爬取的页面元素类型爬取当前页面中的页面元素包括:
滚动所述当前页面,判断滚动后的页面内容是否存在更新数据;
若存在更新数据,则重复滚动所述当前页面;
若不存在更新数据,则根据用户指定的页面元素类型爬取页面元素。
进一步的,所述根据用户指定的页面元素类型爬取页面元素包括:
当所述页面元素类型为翻页元素时,爬取翻页元素中页码最小的一个数字翻页元素;
当所述页面元素类型为标签元素时,按照所述标签元素中的元素排序爬取第一个元素。
进一步的,所述根据所述页面元素的类型对所述页面元素执行对应的元素操作包括:
对点击元素执行元素点击操作后,若当前页面中存在数据更新,则对所述点击元素重复执行元素点击操作;
对翻页元素中页码为当前页面下一页的数字翻页元素执行数字翻页操作,若当前页面中存在数据更新,则按照页码顺序对下一页的数字翻页元素执行数字翻页操作;
对标签元素按照标签元素中的元素排序逐一执行标签切换操作。
进一步的,爬取所述当前页面中根据所述元素操作更新得到的数据包括:
在所述当前页面根据元素操作加载页面数据后,爬取加载后页面的页面数据;
对比所述加载后页面与所述当前页面的页面数据;
提取所述页面数据中更新的数据。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种数据爬取方法,其特征在于,所述方法包括:
根据用户指定爬取的页面元素类型爬取当前页面中的页面元素,每种页面元素类型对应用户预置的一种元素操作;
根据所述页面元素的类型对所述页面元素执行对应的元素操作;
爬取所述当前页面中根据所述元素操作更新得到的数据。
2.根据权利要求1所述的方法,其特征在于,根据所述页面元素的类型对所述页面元素执行对应的元素操作具体包括:
当所述页面元素的类型为点击元素时,对应的元素操作包括元素点击操作;和/或,
当所述页面元素的类型为翻页元素时,对应的元素操作包括数字翻页操作;和/或,
当所述页面元素的类型为标签元素时,对应的元素操作为标签切换操作。
3.根据权利要求2所述的方法,其特征在于,所述根据用户指定爬取的页面元素类型爬取当前页面中的页面元素包括:
滚动所述当前页面,判断滚动后的页面内容是否存在更新数据;
若存在更新数据,则重复滚动所述当前页面;
若不存在更新数据,则根据用户指定的页面元素类型爬取页面元素。
4.根据权利要求3所述的方法,其特征在于,所述根据用户指定的页面元素类型爬取页面元素包括:
当所述页面元素类型为翻页元素时,爬取翻页元素中页码最小的一个数字翻页元素;
当所述页面元素类型为标签元素时,按照所述标签元素中的元素排序爬取第一个元素。
5.根据权利要求2-4中任一项所述的方法,其特征在于,所述根据所述页面元素的类型对所述页面元素执行对应的元素操作包括:
对点击元素执行元素点击操作后,若当前页面中存在数据更新,则对所述点击元素重复执行元素点击操作;
对翻页元素中页码为当前页面下一页的数字翻页元素执行数字翻页操作,若当前页面中存在数据更新,则按照页码顺序对下一页的数字翻页元素执行数字翻页操作;
对标签元素按照标签元素中的元素排序逐一执行标签切换操作。
6.根据权利要求5所述的方法,其特征在于,爬取所述当前页面中根据所述元素操作更新得到的数据包括:
在所述当前页面根据元素操作加载页面数据后,爬取加载后页面的页面数据;
对比所述加载后页面与所述当前页面的页面数据;
提取所述页面数据中更新的数据。
7.一种数据爬取装置,其特征在于,所述装置包括:
元素爬取单元,用于根据用户指定爬取的页面元素类型爬取当前页面中的页面元素,每种页面元素类型对应用户预置的一种元素操作;
操作执行单元,用于根据所述页面元素的类型对所述元素爬取单元得到的页面元素执行对应的元素操作;
数据爬取单元,用于爬取所述当前页面中根据所述操作执行单元执行的元素操作更新得到的数据。
8.根据权利要求1所述的装置,其特征在于,所述操作执行单元具体包括:
点击操作执行模块,用于当所述页面元素的类型为点击元素时,对应执行的元素操作包括元素点击操作;
翻页操作执行模块,用于当所述页面元素的类型为翻页元素时,对应执行的元素操作包括数字翻页操作;
标签切执行模块,用于当所述页面元素的类型为标签元素时,对应执行的元素操作为标签切换操作。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1-6中任一项所述的数据爬取方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1-6中任一项所述的数据爬取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811130421.0A CN110955813A (zh) | 2018-09-27 | 2018-09-27 | 一种数据爬取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811130421.0A CN110955813A (zh) | 2018-09-27 | 2018-09-27 | 一种数据爬取方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110955813A true CN110955813A (zh) | 2020-04-03 |
Family
ID=69967793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811130421.0A Pending CN110955813A (zh) | 2018-09-27 | 2018-09-27 | 一种数据爬取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110955813A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800361A (zh) * | 2021-01-29 | 2021-05-14 | 麒麟合盛网络技术股份有限公司 | 一种内容获取方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040225642A1 (en) * | 2003-05-09 | 2004-11-11 | International Business Machines Corporation | Method and apparatus for web crawler data collection |
CN103324670A (zh) * | 2013-05-21 | 2013-09-25 | 华中科技大学 | 一种页面内容更新消息的推送方法和系统 |
CN106547775A (zh) * | 2015-09-21 | 2017-03-29 | 北京国双科技有限公司 | 网站内容的检测方法及装置 |
CN106844522A (zh) * | 2016-12-29 | 2017-06-13 | 北京市天元网络技术股份有限公司 | 一种网络数据爬取方法和装置 |
CN107609150A (zh) * | 2017-08-28 | 2018-01-19 | 湖北省楚天云有限公司 | 一种基于页面元素选取的交互式网络爬虫创建方法及系统 |
CN108062321A (zh) * | 2016-11-08 | 2018-05-22 | 北京国双科技有限公司 | 基于分页的页码翻页方法及装置 |
CN108073589A (zh) * | 2016-11-09 | 2018-05-25 | 北京国双科技有限公司 | 网页页面元素的获取方法及装置 |
CN108280110A (zh) * | 2017-05-15 | 2018-07-13 | 广州市动景计算机科技有限公司 | 网站差异对比方法、装置及客户端 |
-
2018
- 2018-09-27 CN CN201811130421.0A patent/CN110955813A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040225642A1 (en) * | 2003-05-09 | 2004-11-11 | International Business Machines Corporation | Method and apparatus for web crawler data collection |
CN103324670A (zh) * | 2013-05-21 | 2013-09-25 | 华中科技大学 | 一种页面内容更新消息的推送方法和系统 |
CN106547775A (zh) * | 2015-09-21 | 2017-03-29 | 北京国双科技有限公司 | 网站内容的检测方法及装置 |
CN108062321A (zh) * | 2016-11-08 | 2018-05-22 | 北京国双科技有限公司 | 基于分页的页码翻页方法及装置 |
CN108073589A (zh) * | 2016-11-09 | 2018-05-25 | 北京国双科技有限公司 | 网页页面元素的获取方法及装置 |
CN106844522A (zh) * | 2016-12-29 | 2017-06-13 | 北京市天元网络技术股份有限公司 | 一种网络数据爬取方法和装置 |
CN108280110A (zh) * | 2017-05-15 | 2018-07-13 | 广州市动景计算机科技有限公司 | 网站差异对比方法、装置及客户端 |
CN107609150A (zh) * | 2017-08-28 | 2018-01-19 | 湖北省楚天云有限公司 | 一种基于页面元素选取的交互式网络爬虫创建方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800361A (zh) * | 2021-01-29 | 2021-05-14 | 麒麟合盛网络技术股份有限公司 | 一种内容获取方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11086638B2 (en) | Method and apparatus for loading application | |
CN106933887B (zh) | 一种数据可视化方法及装置 | |
CN106610774B (zh) | 网页表格编辑方法及装置 | |
CN107133165B (zh) | 浏览器兼容性检测方法及装置 | |
CN106919620B (zh) | 单页面处理方法及装置 | |
EP2951680B1 (en) | Acquiring identification of an application lifecycle management entity associated with similar code | |
US20220292056A1 (en) | Method and apparatus for modifying file name, and storage medium | |
CN111679976A (zh) | 一种页面对象的查找方法及装置 | |
CN104809053A (zh) | 一种针对控件样式的测试方法和装置 | |
EP3009900B1 (en) | Dynamic recommendation of elements suitable for use in an engineering configuration | |
CN110955813A (zh) | 一种数据爬取方法及装置 | |
CN105701124A (zh) | 一种提供提示信息的方法及装置 | |
CN112560403A (zh) | 文本的处理方法及装置、电子设备 | |
CN107818000B (zh) | 一种页面表格的操作方法及装置 | |
CN112346761B (zh) | 前端资源上线方法、设备、系统及存储介质 | |
CN110990799A (zh) | 一种反爬虫的数据处理方法、装置、系统及存储介质 | |
CN107766228B (zh) | 一种基于多语种的自动化测试方法和装置 | |
US11550990B2 (en) | Machine first approach for identifying accessibility, non-compliances, remediation techniques and fixing at run-time | |
CN113468050A (zh) | 基于画布的测试方法、装置、计算机设备及存储介质 | |
CN110968754B (zh) | 一种爬虫翻页策略的检测方法及装置 | |
CN105653123A (zh) | 一种图标分组方法及终端设备 | |
CN111078574A (zh) | 生成影响分析报告的方法及装置 | |
CN110955854A (zh) | 一种热力图生成方法及装置 | |
CN111651194B (zh) | 基于iOS的适配方法及装置 | |
CN115328816B (zh) | 测试用例管理方法、装置、计算设备及存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200403 |