CN106599270B - 网络数据抓取方法和爬虫 - Google Patents
网络数据抓取方法和爬虫 Download PDFInfo
- Publication number
- CN106599270B CN106599270B CN201611201913.5A CN201611201913A CN106599270B CN 106599270 B CN106599270 B CN 106599270B CN 201611201913 A CN201611201913 A CN 201611201913A CN 106599270 B CN106599270 B CN 106599270B
- Authority
- CN
- China
- Prior art keywords
- webpage
- address
- content
- page
- browser
- 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.)
- Active
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提出一种网络数据抓取方法和爬虫,涉及互联网技术领域。其中,本发明的一种网络数据抓取方法包括:调用浏览器发起网页访问请求;模拟用户操作,获取返回页面;在返回页面中提取目标内容。通过这样的方法,能够调用真实的浏览器,在真实浏览器上模拟用户的操作,并对网页反馈的内容进行数据抓取,从而实现了对异步请求反馈信息的内容抓取,提高网络数据抓取能力。
Description
技术领域
本发明涉及互联网技术领域,特别是一种网络数据抓取方法和爬虫。
背景技术
网络爬虫是一种自动提取网页内容的程序,它按照一定的规则抓取互联网信息。网络爬虫一般从一个或若干个初始网页的URL(Uniform Resource Locator,统一资源定位符)开始,获得初始网页上的内容,并继续抽取满足规则的新的URL,将其放入队列,周而复始,直到完成满足系统设定的一定条件时停止。
普通的网络爬虫能够获取静态页面的内容,但是目前大量的网站使用了Ajax(Asynchronous Javascript And XML,异步JavaScript和XML(Extensible MarkupLanguage,可扩展标记语言))技术,对于这种类型的网站,普通爬虫仅能获取网页中同步请求的数据,无法对异步请求进行及时的响应和处理,导致爬虫无法获取目标内容。
发明内容
本发明的一个目的在于实现网络爬虫对于一部请求数据的抓取,提高网络爬虫的网络数据抓取能力。
根据本发明的一个方面,提出一种网络数据抓取方法,包括:调用浏览器发起网页访问请求;模拟用户操作,获取返回页面;在返回页面中提取目标内容。
可选地,调用浏览器发起网页访问请求包括:在请求者地址列表中选取IP(Internet Protocol,互联网协议)地址;调用浏览器,采用IP地址作为源地址发起网页访问请求。
可选地,还包括:若采用IP地址作为源地址无法访问目标网页,则从请求者地址列表中删除IP地址。
可选地,调用浏览器发起网页访问请求还包括:判断请求者地址列表中IP地址的数量是否达到预定门限;若IP地址的数量小于预定门限,则在请求者地址列表中填充IP地址。
可选地,用户操作包括点击、滑动滚轮和/或输入内容并提交。
可选地,在返回页面中提取目标内容包括:判断返回网页是否为不标准网页和/或加载不完全的网页;若返回网页为不标准网页和/或加载不完全的网页,则通过正则表达式在返回页面中提取目标内容;否则,通过XPATH(XML Path Language,可扩展标记语言路径语言)在返回页面中提取目标内容。
通过这样的方法,能够调用真实的浏览器,在真实浏览器上模拟用户的操作,并对网页反馈的内容进行数据抓取,从而实现了对异步请求反馈信息的内容抓取,提高网络数据抓取能力。
根据本发明的另一个方面,提出一种网络爬虫,包括:请求访问模块,用于调用浏览器发起网页访问请求;用户模拟模块,用于模拟用户操作;网页内容获取模块,用于获取返回页面;内容提取模块,用于在返回页面中提取目标内容。
可选地,请求访问模块包括:源地址获取单元,用于在请求者地址列表中选取IP地址;访问单元,用于调用浏览器,采用IP地址作为源地址发起网页访问请求。
可选地,还包括:地址删除模块,用于当采用IP地址作为源地址无法访问目标网页时,从请求者地址列表中删除IP地址。
可选地,请求访问模块还包括:数量判断单元,用于判断请求者地址列表中IP地址的数量是否达到预定门限;地址填充单元,用于当网页地址的数量小于预定门限时,在待搜索地址列表填充网页地址。
可选地,用户操作包括点击、滑动滚轮和/或输入内容并提交。
可选地,内容提取模块包括:页面判断单元,用于判断返回网页是否为不标准网页和/或加载不完全的网页;提取操作单元,用于当返回网页为不标准网页和/或加载不完全的网页时,通过正则表达式在返回页面中提取目标内容;否则,通过XPATH在返回页面中提取目标内容。
这样的网络爬虫能够调用真实的浏览器,在真实浏览器上模拟用户的操作,并对网页反馈的内容进行数据抓取,从而实现了对异步请求反馈信息的内容抓取,提高了网络数据抓取能力。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明的网络数据抓取方法的一个实施例的流程图。
图2为本发明的网络数据抓取方法中发起访问请求的一个实施例的流程图。
图3为本发明的网络数据抓取方法中提取目标内容的一个实施例的流程图。
图4为本发明的网络抓取方法的另一个实施例的流程图。
图5为本发明的网络爬虫的一个实施例的示意图。
图6为本发明的网络爬虫中请求访问模块的一个实施例的示意图。
图7为本发明的网络爬虫中请求访问模块的另一个实施例的示意图。
图8为本发明的网络爬虫中内容提取模块的一个实施例的示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明的网络数据抓取方法的一个实施例的流程图如图1所示。
在步骤101中,根据待搜索地址列表调用浏览器发起网页访问请求。
在步骤102中,模拟用户操作,获取返回页面。在一个实施例中,用户操作包括点击、滑动滚轮,以及输入内容并提交中的一个或多个。
在步骤103中,在返回页面中提取目标内容。在一个实施例中,提取目标内容的操作可以包括返回页面长度判断、目标内容搜索等。在一个实施例中,可以利用XPATH在返回页面中提取目标内容,也可以用正则表达式在返回页面中提取目标内容。在一个实施例中,可以存储该提取到的目标内容,也可以存储提取到的目标内容及其网页地址,便于后期对于提取到的内容进行分析应用。
通过这样的方法,能够调用真实的浏览器,在真实浏览器上模拟用户的操作,并对网页反馈的内容进行数据抓取,从而实现了对异步请求反馈信息的内容抓取,提高网络数据抓取能力。另外,虽然与传统的爬虫相比调用浏览器会降低抓取效率,但是更低的抓取频率对被抓取网站的服务器更友好,不会对服务器造成压力影响网站运行,同时也避免了浏览器源IP地址被网站服务器限制。
在一个实施例中,由于部分网站出于服务器压力考虑,会对某一个或者某一段IP进行限制访问,为避免无法访问,可以采用代理IP发送访问请求。可以从请求者地址列表中选取IP地址,并调用浏览器,采用该IP地址作为源地址发起网页访问请求。在一个实施例中,可以从请求者地址列表中随机选择IP地址作为源地址。通过这样的方法,能够避免由于IP地址被限制访问造成的无法抓取网页中内容的情况,提高了网络数据抓取能力。
在一个实施例中,当将某IP地址作为源地址发起网页访问请求,但被网页拒绝时,则判断该IP地址被网页限制访问,或无法到达该网页,将该IP地址从请求者地址列表中删除。通过这样的方法,能够及时删除受限的源地址,从而避免反复使用该地址进行访问造成的资源浪费,提高了数据抓取效率。
本发明的网络数据抓取方法中发起访问请求的一个实施例的流程图如图2所示。
在步骤201中,判断请求者地址列表中IP地址的数量是否达到预定门限。在一个实施例中,预定门限可以为1,即已没有备选IP地址。预定门限也可以是其他预设的数量。若网页地址的数量小于预定门限,则执行步骤204;若网页地址的数量不小于预定门限,则执行步骤202。
在步骤202中,从请求者地址列表中选取IP地址。在一个实施例中,可以随机提取IP地址。
在步骤203中,调用浏览器,采用该IP地址作为源地址发起网页访问请求。
在步骤204中,在请求者地址列表中填充IP地址。
通过这样的方法,能够在请求者地址列表中地址减少到门限值时及时补充,保证可以获取IP地址作为源地址,采用代理IP的方式进行网页访问,从而维持了网络爬虫长期、稳定的运行。
本发明的网络数据抓取方法中提取目标内容的一个实施例的流程图如图3所示。
在步骤301中,判断返回网页是否为不标准网页,以及是否为加载不完全的网页。若返回网页是不标准网页,或者是加载不完全的网页,则执行步骤303;若返回网页不是标准网页,也不是加载不完全的网页,则执行步骤302。
在步骤302中,通过正则表达式在返回页面中提取目标内容。
在步骤303中,通过XPATH在返回页面中提取目标内容。
由于XPATH的提取速度更快,但无法提取不标准网页、加载不完全的网页中的内容,因此,对于大部分网页,采用速度更快的XPATH提取方法,并配合正则表达式提取不标准网页、加载不完全的网页,从而在保证数据抓取的效率的同时,避免漏抓取,进一步提高了网络爬虫的网络数据抓取能力。
本发明的网络抓取方法的另一个实施例的流程图如图4所示。
在步骤401中,启动网络爬虫,开始数据抓取。
在步骤402中,判断请求者地址列表中IP地址的数量是否达到预定门限。若网页地址的数量小于预定门限,则执行步骤403;若网页地址的数量不小于预定门限,则执行步骤404。
在步骤403中,在请求者地址列表中填充IP地址,进而执行步骤404。
在步骤404中,从请求者地址列表中选取IP地址。
在步骤405中,调用浏览器,采用该IP地址作为源地址发起网页访问请求。
在步骤406中,判断是否访问成功。若被拒绝访问,网页无法打开,则执行步骤407;若网页成功打开,则执行步骤408。
在步骤407中,将该IP地址从请求者地址列表中删除,并返回执行步骤402。
在步骤408中,模拟用户操作,获取返回页面。在一个实施例中,用户操作包括点击、滑动滚轮,以及输入内容并提交中的一个或多个。
在步骤409中,判断返回网页是否为不标准网页,以及是否为加载不完全的网页。若返回网页是不标准网页,或者是加载不完全的网页,则执行步骤411;若返回网页不是标准网页,也不是加载不完全的网页,则执行步骤410。
在步骤410中,通过XPATH在返回页面中提取目标内容。
在步骤411中,通过正则表达式在返回页面中提取目标内容。
通过这样的方法,能够调用真实的浏览器,在真实浏览器上模拟用户的操作,并对网页反馈的内容进行数据抓取,从而实现了对异步请求反馈信息的内容抓取,提高网络数据抓取能力;同时能够避免IP地址受限造成的无法访问的情况,进一步保证网络爬虫的稳定运行。
本发明的网络爬虫的一个实施例的示意图如图5所示。其中,请求访问模块501能够根据待搜索地址列表调用浏览器发起网页访问请求。用户模拟模块502能够模拟用户操作,在一个实施例中,用户操作包括点击、滑动滚轮,以及输入内容并提交中的一个或多个。网页内容获取模块503能够获取返回页面。内容提取模块504能够在返回页面中提取目标内容。在一个实施例中,可以利用XPATH在返回页面中提取目标内容,也可以用正则表达式在返回页面中提取目标内容。在一个实施例中,可以存储该提取到的目标内容,也可以存储提取到的目标内容及其网页地址,便于后期对于提取到的内容进行分析应用。
这样的装置能够调用真实的浏览器,在真实浏览器上模拟用户的操作,并对网页反馈的内容进行数据抓取,从而实现了对异步请求反馈信息的内容抓取,提高网络数据抓取能力。
在一个实施例中,由于部分网站出于服务器压力考虑,会对某一个或者某一段IP进行限制访问,为避免无法访问,可以采用代理IP发送访问请求。本发明的网络爬虫中请求访问模块的一个实施例的示意图如图6所示。其中,源地址获取单元601能够从请求者地址列表中选取IP地址,在一个实施例中,可以随机从请求者地址列表中选取IP地址。访问单元602能够调用浏览器,采用源地址获取单元601选取的IP地址作为源地址发起网页访问请求。
这样的网络爬虫能够避免出现由于IP地址被限制访问造成的无法抓取网页中内容的情况,提高了网络数据抓取能力。
在一个实施例中,网络爬虫还可以包括地址删除模块。当将某IP地址作为源地址发起网页访问请求,但被网页拒绝时,地址删除模块能够将该IP地址从请求者地址列表中删除。这样的网络爬虫能够及时删除受限的源地址,从而避免反复使用该地址进行访问造成的资源浪费,提高了数据抓取效率。
本发明的网络爬虫中请求访问模块的另一个实施例的示意图如图7所示。其中,源地址获取单元703和访问单元704的结构和功能与图6的实施例中相似。网络爬虫还包括数量判断单元701和地址填充单元702。数量判断单元701能够判断请求者地址列表中IP地址的数量是否达到预定门限。在一个实施例中,预定门限可以为1,即已没有备选IP地址。预定门限也可以是其他预设的数量。地址填充单元702能够在网页地址的数量小于预定门限时在请求者地址列表中填充IP地址。
这样的网络爬虫能够在请求者地址列表中地址减少到门限值时及时补充,保证可以获取IP地址作为源地址,采用代理IP的方式进行网页访问,从而维持了网络爬虫长期、稳定的运行。
本发明的网络爬虫中内容提取模块的一个实施例的示意图如图8所示。其中,页面判断单元801能够判断返回网页是否为不标准网页,以及是否为加载不完全的网页。提取操作单元802能够根据页面判断单元801的判断结果采取对应的操作,当返回网页是不标准网页,或者是加载不完全的网页时,通过正则表达式在返回页面中提取目标内容;当返回网页不是标准网页,也不是加载不完全的网页时,通过XPATH在返回页面中提取目标内容。
由于XPATH的提取速度更快,但无法提取不标准网页、加载不完全的网页中的内容,因此,对于大部分网页,采用速度更快的XPATH提取方法,并配合正则表达式提取不标准网页、加载不完全的网页,从而在保证数据抓取的效率的同时,避免漏抓取,进一步提高了网络爬虫的网络数据抓取能力。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
Claims (10)
1.一种网络数据抓取方法,其特征在于,包括:
调用浏览器发起网页访问请求;
模拟用户操作,获取返回页面,其中,所述用户操作包括点击、滑动滚轮,以及输入内容并提交中的一个或多个;
在所述返回页面中提取目标内容,包括:
判断所述返回网页是否为不标准网页和/或加载不完全的网页;
若所述返回网页为不标准网页和/或加载不完全的网页,则通过正则表达式在所述返回页面中提取所述目标内容;否则,通过可扩展标记语言路径语言XPATH在所述返回页面中提取所述目标内容。
2.根据权利要求1所述的方法,其特征在于,所述调用浏览器发起网页访问请求包括:
在请求者地址列表中选取互联网协议IP地址;
调用所述浏览器,采用所述IP地址作为源地址发起所述网页访问请求。
3.根据权利要求2所述的方法,其特征在于,还包括:
若采用所述IP地址无法访问目标网页,则从所述请求者地址列表中删除所述IP地址。
4.根据权利要求3所述的方法,其特征在于,所述调用浏览器发起网页访问请求还包括:
判断所述请求者地址列表中IP地址的数量是否达到预定门限;
若所述IP地址的数量小于所述预定门限,则在所述请求者地址列表中填充所述IP地址。
5.根据权利要求1~4任意一项所述的方法,其特征在于,所述提取目标内容包括:返回页面长度判断和目标搜索。
6.一种网络爬虫,其特征在于,包括:
请求访问模块,用于调用浏览器发起网页访问请求;
用户模拟模块,用于模拟用户操作,其中,所述用户操作包括点击、滑动滚轮,以及输入内容并提交中的一个或多个;
网页内容获取模块,用于获取返回页面;
内容提取模块,用于在所述返回页面中提取目标内容,包括:
页面判断单元,用于判断所述返回网页是否为不标准网页和/或加载不完全的网页;
提取操作单元,用于当所述返回网页为不标准网页和/或加载不完全的网页时,通过正则表达式在所述返回页面中提取所述目标内容;否则,通过可扩展标记语言路径语言XPATH在所述返回页面中提取所述目标内容。
7.根据权利要求6所述的网络爬虫,其特征在于,所述请求访问模块包括:
源地址获取单元,用于在请求者地址列表中选取互联网协议IP地址;
访问单元,用于调用所述浏览器,采用所述IP地址作为源地址发起所述网页访问请求。
8.根据权利要求7所述的网络爬虫,其特征在于,还包括:
地址删除模块,用于当采用所述IP地址无法访问目标网页时,从所述请求者地址列表中删除所述IP地址。
9.根据权利要求8所述的网络爬虫,其特征在于,所述请求访问模块还包括:
数量判断单元,用于判断所述请求者地址列表中IP地址的数量是否达到预定门限;
地址填充单元,用于当所述网页地址的数量小于所述预定门限时,在待搜索地址列表填充所述网页地址。
10.根据权利要求6~9任意一项所述的网络爬虫,其特征在于,所述提取目标内容包括:返回页面长度判断和目标搜索。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611201913.5A CN106599270B (zh) | 2016-12-23 | 2016-12-23 | 网络数据抓取方法和爬虫 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611201913.5A CN106599270B (zh) | 2016-12-23 | 2016-12-23 | 网络数据抓取方法和爬虫 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106599270A CN106599270A (zh) | 2017-04-26 |
CN106599270B true CN106599270B (zh) | 2020-08-21 |
Family
ID=58603155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611201913.5A Active CN106599270B (zh) | 2016-12-23 | 2016-12-23 | 网络数据抓取方法和爬虫 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106599270B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107105071A (zh) * | 2017-05-05 | 2017-08-29 | 北京京东金融科技控股有限公司 | Ip调用方法及装置、存储介质、电子设备 |
CN108874810B (zh) * | 2017-05-10 | 2021-01-26 | 北京京东尚科信息技术有限公司 | 信息采集的方法和装置 |
CN107704497B (zh) * | 2017-08-25 | 2020-05-01 | 深圳壹账通智能科技有限公司 | 网页数据爬取方法、装置、网页数据爬取平台及存储介质 |
CN108984801A (zh) * | 2018-08-22 | 2018-12-11 | 百卓网络科技有限公司 | 一种基于html标签识别异步加载内容的搜索引擎优化方法 |
CN114385881A (zh) * | 2020-10-22 | 2022-04-22 | 电科云(北京)科技有限公司 | 应对网页woff字体反爬虫的爬虫方法和装置 |
CN115408594A (zh) * | 2022-11-01 | 2022-11-29 | 长沙火线云网络科技有限公司 | 一种网页标题提取方法和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009061399A1 (en) * | 2007-11-05 | 2009-05-14 | Nagaraju Bandaru | Method for crawling, mapping and extracting information associated with a business using heuristic and semantic analysis |
CN102890692A (zh) * | 2011-07-22 | 2013-01-23 | 阿里巴巴集团控股有限公司 | 一种网页信息抽取方法及抽取系统 |
CN103246721B (zh) * | 2013-05-03 | 2016-12-28 | 北京奇虎科技有限公司 | 浏览器访问售票网站的方法和装置 |
CN104252530B (zh) * | 2014-09-10 | 2017-09-15 | 北京京东尚科信息技术有限公司 | 一种单机爬虫抓取方法及系统 |
CN105354337A (zh) * | 2015-12-08 | 2016-02-24 | 北京奇虎科技有限公司 | 一种网络爬虫实现方法和网络爬虫系统 |
-
2016
- 2016-12-23 CN CN201611201913.5A patent/CN106599270B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106599270A (zh) | 2017-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106599270B (zh) | 网络数据抓取方法和爬虫 | |
US20220147696A1 (en) | Enhanced links in curation and collaboration applications | |
CN106294648B (zh) | 一种针对页面访问路径的处理方法及装置 | |
CN102272757B (zh) | 用于执行客户端浏览器状态的服务器端记录的方法和系统 | |
CN102646135B (zh) | 一种网页收藏方法、装置及系统 | |
CN109376291B (zh) | 一种基于网络爬虫的网站指纹信息扫描的方法及装置 | |
CN104572777B (zh) | 基于UIWebView组件的网页加载方法及装置 | |
US9934206B2 (en) | Method and apparatus for extracting web page content | |
CN105760379B (zh) | 一种基于域内页面关联关系检测webshell页面的方法及装置 | |
JP5764255B2 (ja) | ユーザ操作検出システムおよびユーザ操作検出方法 | |
US9154522B2 (en) | Network security identification method, security detection server, and client and system therefor | |
CN103617267B (zh) | 社交化扩展搜索方法及装置、系统 | |
CN102870118B (zh) | 用户行为的获取方法、设备及系统 | |
CN109600385B (zh) | 一种访问控制方法及装置 | |
TW201800962A (zh) | 網頁文件發送方法、網頁渲染方法及裝置、網頁渲染系統 | |
CN112637361B (zh) | 一种页面代理方法、装置、电子设备及存储介质 | |
CN106844486A (zh) | 爬取动态网页的方法及装置 | |
CN105635064B (zh) | Csrf攻击检测方法及装置 | |
CN111177623A (zh) | 信息处理方法及装置 | |
CN103458065A (zh) | 一种HTML5标准下基于Webkit内核的视频地址提取方法 | |
CN103455492B (zh) | 一种搜索网页的方法和装置 | |
CN107786529B (zh) | 网站的检测方法、装置及系统 | |
CN111324894A (zh) | 一种基于web应用安全的XSS漏洞检测方法及系统 | |
WO2019000897A1 (zh) | 一种数据获取方法及设备 | |
US10095791B2 (en) | Information search method and apparatus |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |