[发明专利]一种基于指定电子商务网站的定向爬虫的实现方法在审
申请号: | 201410266881.1 | 申请日: | 2014-06-13 |
公开(公告)号: | CN104050037A | 公开(公告)日: | 2014-09-17 |
发明(设计)人: | 朱全银;周泓;李翔;潘禄;刘文儒;戎圣吉;张宇洋;曹苏群;王留洋;周蕾 | 申请(专利权)人: | 淮阴工学院 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 223005 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 指定 电子商务 网站 定向 爬虫 实现 方法 | ||
技术领域
本发明属于WEB数据采集领域,特别涉及一种基于指定电子商务网站的定向爬虫的实现方法,可应用于指定电子商务网站特定电子商品信息的采集。
背景技术
基于指定电子商务网站的网络爬虫不同于广义的爬虫,是一种聚焦爬虫,针对指定电子商务网站,进行商品信息数据的分析与采集。随着网络信息的高速增长,网络爬虫技术面临着索引规模扩大,更新速度变快和个性化需求增多等多方面问题。为了解决这些问题,适用于特定主题和个性化搜索主题的网络爬虫应运而生。广义上的爬虫多指通用爬虫,通用爬虫不注重页面采集顺序和被采集页面的相关主题,造成系统资源和网络带宽的浪费,而本方法采用的聚焦爬虫能够尽可能快地爬行、采集尽可能多的与已经预定义好的主题相关内容,通过对整个WEB按主题分块采集,并将不同块的采集结果整合得到最终结果,与通用爬虫相比,这种方法能大幅提高WEB采集覆盖率和页面利用率并提高爬虫效率。基于指定电子商务网站的特定电子商品爬虫采用聚焦爬虫对指定电子商务网站中的商品信息进行定向的数据挖掘,这在很大的程度上避免了计算机资源的浪费,整体提高爬取效率。
本方法使用Python进行爬虫的编写,使用多线程技术提高爬虫的性能,并结合正则表达式的文本分析功能和CSS选择器的选取器功能实现爬虫中文本信息的分析与抓取。
正则表达式:
正则表达式(Regular Expression),通过使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。给定一个正则表达式和另一个字符串,可以判断给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”),并通过正则表达式,从字符串中获取我们想要的特定部分。正则表达式灵活性、逻辑性和功能性强,可以迅速地用极简单的方式达到字符串的复杂控制。
CSS选择器:
层叠样式表(Cascading Style Sheets,简写CSS),又称串样式列表、层次结构式样式表文件,一种用来为结构化文档(如HTML文档或XML应用)添加样式(字体、间距和颜色等)的计算机语言,能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。通过类别,标签,ID等选择器,可以对页面元素进行编辑。PyQuery是基于层叠样式表的Python第三方模块,通过类名和ID的获取数据。PyQuery通过解析层叠样式表生成DOM树,在DOM树中通过给定的类名或ID获取所对应的数据。由于PyQuery只通过类名和ID来获取数据,因此它拥有普通正则匹配公式所不具备的强大的兼容性,适合在页面排版变动频繁的网站获取数据。
多线程提升爬虫性能:
多线程是一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其他线程共享存储空间,这使得线程间的通信较简单。多个线程的执行是并发的,即在逻辑上是“同时”的。如果系统只有一个CPU,那么真正的“同时”是不可能的,但是由于CPU切换的速度非常快,用户感觉不到其中的区别,因此用户感觉到线程是同时执行的。
为了提升爬虫性能,需要采用多线程的爬虫技术。由于很多大型网站都采用多个服务器镜像的方式提供同样的网页内容,采用多线程并行抓取能同时获取同一个网站的多个服务器中的网页,这样能极大地减少抓取这类网站所需的时间。
本方法使用的爬虫主要采用正则匹配对页面进行匹配,寻找出所需的商品信息。但是对于文本分析来说,PyQuery更简单易懂,而正则匹配全文匹配计算量过大,而是用PyQuery结构分析定位,能够大幅提高效率,因此,本方法使用的爬虫采用了一种新的形式,将PyQuery与正则表达式相结合,大部分的商品信息可以通过PyQuery用“ID”和“类名”匹配出来,一小部分无法使用PyQuery匹配出的商品信息,可以先用PyQuery匹配出此信息所在的类,再用正则表达式进行精确的匹配。同时,使用多线程编程,进行并发处理,大幅度提高爬虫的效率。这种方法可以有效增强代码可读性和健壮性、增加匹配的正确率、提高运行效率。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于淮阴工学院,未经淮阴工学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410266881.1/2.html,转载请声明来源钻瓜专利网。