原创《语料搜集:桌面级的网页抓取技术与工具》

李亮1975重庆

语料库快乐军政委
原创《语料搜集:桌面级的网页抓取技术与工具》
作者:李亮
日期:2012年4月15日



网页抓取是语料搜集的一种形式,而网页抓取方面的工具都是快速下载和海量下载,所以,大型网站往往有防止”被爬虫爬“的机制呢, 例如广东外语外贸大学的网站就有”反爬虫机制“的,我用"wget.exe -r www.gdufs.edu.cn"进行下载整个广外网站的时候,几秒钟之后我是用的爬虫软件“wget.exe”就被断开了连接,因为人的鼠标操作是不会这么快的(人工打开一个网页,在互联网的底层,原则上与“下载一个网页”是完全一致)。在"wget.exe -r www.gdufs.edu.cn"的“-r”就是recursive,就是逐级深入地自动识别链接与抓取,如果没有这个参数的话,wget.exe就只抓取“首页”。Google网站也有“反爬虫机制”,不要说你用wget.exe之类的爬虫软件了,你就是自己点鼠标点得很快,很持续的话,Google 都会弹出一个拦截的页面,让你输入“图片上的几个字母”,它说以此来识别你是不是“恶意软件或病毒或自动机器人”。不过,四川外语学院之类的网站并没有 “反爬虫机制”的,可以无限快地持续抓取的,所以,“是否要反爬虫”是后台管理员的网站开发制度规划与自身利益(链条)来决定的

不过,为了突破“反爬虫机制”,网页抓取工具一般也有一些特别的功能设置来突破或欺骗被抓取的网站呢。例如,可以设置抓取的时间间隔为若干秒,甚至设置时间间隔为若干秒到若干秒之间进行随机波动而貌似是人在手工点。再例如,爬虫往往可以设置自己为IE浏览器或其他应用软件呢(也就是伪装为“其他某种软件”),因为互联网上的两个电脑之间通过某种软件进行TCP/IP通信连接的时候,要经过“相互三次握手”与“相互交换名片”这样的环节呢, 而爬虫就可以把自己的“名片”写成其他的对方网站乐意看到的“名片”,因为如果我们直接编程设计了一款网页下载抓取的软件是很容易的,但是在进行Http 连接的时候,本来要发送一个http信息头的里面应该包含“自己是谁”这个信息段的,这个信息段如果没有编程开发的时候设置了的话就是空白的,虽然一般网站也容许“http的应用软件的身份的信息头”为空白的,但是,对方因此知道了“你什么也不是”。所以,“爬”与“反爬”与“反反爬”是争锋相对的。总体来说,只要把爬虫的抓取速度降低下来,就容易畅通无阻了。所以,user-agent是个非常关键的技术概念,自己的user-agent这个信息(也就是上面提到的所谓的“名片”)可以被自己胡乱设置或刻意设置的,以此来欺骗你想要欺骗的互联网上的网站哟,下面的三个链接是较详细的解释,有必要读一读的……
http://www.iefans.net/user-agent-weizhuang-liulanqi-caozuoxitong/
http://whatismyipaddress.com/user-agent

http://msdn.microsoft.com/en-us/library/ms537503%28VS.85%29.aspx


你需要自己看自己的user-agent的情况的话,可以访问:
http://www.httpuseragent.com/

因此,user-agent是比较固定格式的一个字符串,这里有专门的网站提供这样的较完整列表,便于随时调用

http://www.user-agents.org/

http://www.useragentstring.com/pages/useragentstring.php


网页抓取工具有商业版系列和免费版系列,最著名的商业版都在国内有它们的破解版(也称为
“绿色版”或“正式版”或“特别版”或“注册版”或“汉化版”或“便携版”或精简版“,这些都是”破解版“的”行业的委婉的表达“)。商业版一般都是Windows操作方式的,有些也同时支持DOS执行或写个bat文件让它们以“获取命令行的多个参数”的方式执行。免费版其实在功能上并不逊色于商业版,只是不如商业版的广告宣传那么强劲和那么那么多的贴心的甚至冗余的功能设计。

网页爬虫,也叫做“离线浏览工具”
,在各种软件下载中心或软件下载网站都有这个软件分类:“离线浏览”。例如:
http://www.xdowns.com/soft/1/69/

http://dl.pconline.com.cn/sort/91.html

http://www.onlinedown.net/sort/43_1.htm

http://www.hanzify.org/category/36.html


看看上面的网页,都有“下载量的排行榜”,都基本反映了最强大最热门的这类软件是哪些。我印象中,最强大的商业版的网页爬虫是:

Offline Explorer
官方网址是:http://www.metaproducts.com/mp/mpProducts_List.asp
Teleport Pro
官方网址是: http://www.tenmax.com/teleport/pro/home.htm
WebCopier
官方网址是: http://www.maximumsoft.com/

我印象中的,最强大的完全免费版的网页爬虫是:

HTTrack 免费而强大,官方提供DOS版和Win版
官方网址是: http://www.httrack.com/
cURL and libcurl 免费而强大,官方提供dos和win版
官方网址是: http://curl.haxx.se/
WinWGet 内含wget的win版,预置多种user agents
官方网址是: http://www.cybershade.us/winwget/
IRobotSoft 免费而强大,可与数据库交互
官方网址是: http://www.irobotsoft.com/

它们都可以被直接集成到任何人自己用各种编程语言开发的软件中去,因为各种编程语言都有execute()或run()或shell()这样的“让外部执行文件运行起来的函数或指令”。


我个人最喜欢的爬虫是“wget”
,它的官方网址是:http://www.gnu.org/software/wget/
而WinWGet就是包含了wget的外壳程序,因为wget是个单文件的exe,不需要安装,自己写最简单的一两个参数就让它立即处于疯狂的下载状态了。

我们个人用的“网页爬虫软件”属于“桌面级”的,一般没有跟标准数据库进行对接
,而只是下载与分类而已;而服务器上运行的,往往需要跟标准数据库进行对接,并且需要同时生成“索引”来快速搜索。 中型和大型的数据库管理系统(例如,免费的MySQL,商业版的Microsoft SQL Server和商业版的Oracle)都从2005年左右就开始了对网页HTML和XML都进行直接的逐个元素标签的存储,同时在SQL查询语句中都新增了对XML的“特殊查询”,因为最近七八年之内的HTML网页都标准化为非常符合XML规范的XHTML了。下面这个链接,就是介绍Microsoft SQL Server 2005的XML强大处理能力……
[FONT=宋体]http://v.youku.com/v_show/id_XNjQ5MDM3Mjg=.html (MS SQL Server 2005[/FONT][FONT=宋体]的XML操纵技能)[/FONT]

免费版的网页抓取工具都普遍提供了“命令行的执行方式”
, 就是在DOS窗口输入命令或写个bat文件让它执行。bat文件就是一个txt文件,你在“桌面”新建一个“纯文本文件”,然后在里面写 “c:\wget.exe http://www.baidu.com”,然后保存退出,然后点右键把当前的纯文本文件的文件扩展名改为“.bat”就能双击执行了,也就是给c盘下的wget.exe传递了第一个参数。当然,如果Windows是“不显示文件扩展名”的话就需要看下面的链接来让Windows显示出文件扩展名而被你手工修改。
http://blog.csdn.net/dlyhlq/article/details/2875348

http://www.qudong.com/OS/Windows_Vista/2009/0728/40849.html

http://www.downyi.com/article/article_24_1.html


以上的
桌面级爬虫软件都可以从简单到复杂地设置“抓取对象的特征”,例如:只抓取某种文件类型,只抓取某种文件大小的文件,只抓取指定的创建时间或修改时间的那些网页,只抓取网址的字符串满足某种特征的网页。此外,还可以设置是否“跨主机”抓取,就是要不要从一个网站顺着它页面的链接而跑到其他网站上去继续抓取。

以上都是“独立软件形式的爬虫”,而互联网上也有Web as Corpus这种理念的专门网站,例如

http://www.webcorp.org.uk/live/index.jsp


中山大学的校园网首页有专门的“反爬虫”的robots.txt呢,就是来告诉自动爬来的遵守职业规范的“标准爬虫”不要爬某些页面的……

http://www.sysu.edu.cn/robots.txt

其他的关于robots.txt的资料如下……
http://www.javascriptkit.com/howto/robots.shtml

http://robotstxt.info

http://www.searchtools.com/robots/robots-txt.html
 
Last edited:
回复: 原创《语料搜集:桌面级的网页抓取技术与工具》

下了这个文件,但是没有可执行文件Wget.exe. 不知是什么原故.
 
回复: 原创《语料搜集:桌面级的网页抓取技术与工具》

找到了,重新下了一个文件.
 
回复: 原创《语料搜集:桌面级的网页抓取技术与工具》

Their <a href=http://www.luxurybagshops.com>mulberry bags</a> and understatement are evident when they are compared with Western mystics. Both characteristics belong to all Chinese literature and art, and to the conversation of cultivated Chinese in the present day. All classes in China are fond of laughter, and never miss a chance of a joke. In the educated classes, the humour is sly and delicate, so that Europeans often fail to see it, which adds to the enjoyment of the Mulberry Outlet Store York. Their habit of under-statement is remarkable. I met one day in Peking a middle-aged man who told me he was academically interested in the theory of politics; being new to the country, I took his statement at its face value, but I afterwards discovered that he had been governor of a province, and had been for many years a very prominent politician. In Mulberry Outlet there is an apparent absence of passion which is due to the same practice of understatement. They consider that a wise man should always remain calm, and though they have their passionate moments (being in fact a very excitable race), they do not wish to perpetuate them in art, because they think ill of them. Our romantic movement, which led Mulberry Purses Target to like vehemence, has, so far as I know, no analogue in their literature. Their old music, some of which is very beautiful, makes so little noise that one can only just hear it. In art they aim at being exquisite, and in life at being reasonable. There is no admiration for the ruthless strong man, or for the unrestrained expression of <a href=http://www.luxurybagshops.com>mulberry bag</a>. After the more blatant life of the West, one misses at first all the effects at which they are aiming; but gradually the beauty and dignity of their mystic doctrines and a way of salvation and Mulberry Wallet.
 
【从附件可以下载】wget.exe(1.13.4版)和VisualWget.exe(2.4版)

VisualWget是完全免费的,它的官方网址在:
http://khomsanph.net/apps/visualwget
VisualWget是一个外壳程序,不过里面已经包含了wget.exe的1.11.4版,所以可以直接干活,不过整个外壳程序是.net 2.0开发的,如果是Windows Vista或Windows 7都可以直接运行起来。但是你是Windows XP且没有安装.net framework 2.0的话就无法运行起来,就需要下载.net framework 2.0的:
http://www.crsky.com/soft/4818.html
或者:
http://dl.pconline.com.cn/html_2/1/82/id=10637&pn=0.html
或者:
http://www.skycn.com/soft/39946.html

wget.exe的1.13.4版是2011年9月18日的版本,是目前的最新版。附件中的“wget 1.13.4.zip”含有help.txt,wget.exe,wget_manual.htm这三个文件,它们的第一个是wget.exe的参数的简要说明,wget_manual.htm是稍微详细一些的说明,wget.exe就是主程序,是单文件的,不依赖其它的配套文件。

如果无法下载或不方便下载的话,可以给我邮件:
492130980@qq.com

我在“新浪爱问”也上传了(不需要积分的,直接下载)!

VisualWget的下载在:
http://ishare.iask.sina.com.cn/f/23992152.html


wget 1.13.4(2011年9月18日的版本).zip
http://ishare.iask.sina.com.cn/f/23992151.html
 

附件

  • wget 1.13.4.zip
    565.1 KB · 浏览: 7
  • VisualWget 2.4(内含wget 1.11.4,基于.net 2.0).zip
    990.5 KB · 浏览: 25
Last edited:
回复: 原创《语料搜集:桌面级的网页抓取技术与工具》

谢谢,写的非易懂。我正需要呢
 
Back
顶部