使用身份验证对网站进行爬网的爬网程序

时间:2011-05-14 18:35:58

标签: web-crawler

是否有任何开源搜寻器会抓取需要身份验证(用户名/密码)才能登录的网站?我需要它来抓取我的大学网站索引网站上的文件。感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

我不知道,如果有,你的系统管理员可能不会允许它。

您可以查找基本抓取工具的示例,并自己执行此操作...

答案 1 :(得分:0)

您可以编写基于PHP / libCurl或Ruby / Curb的脚本。网站的身份验证基于cookie,Curl库提供功能以在您的程序中发送cookie。

我不知道你喜欢哪种语言(PHP或Ruby)。如果您使用的是Ruby,则可以编写如下代码

require 'curb'
require 'uri'
curl = Curl::Easy.new
curl.url = 'http://example.com/login/page'
curl.enable_cookies = true
curl.cookiefile = '/tmp/cookie'
curl.cookiejar = '/tmp/cookie'
form_field = URI.encode_www_form('username'=>yourname, 'password'=>yourpwd)
curl.http_post(form_field)

文件'/ tmp / cookie'用于存储和读取cookie,如浏览器。 Cookie使身份验证成为可能。

'form_field'包含网站的用户名和密码,但是根据网站需要一些其他字段。您应该破解网站的登录表单,以了解哪些字段必须发布到网站。