编写爬虫的工具/库

时间:2011-03-21 17:41:14

标签: http language-agnostic web-crawler

我需要一个工具

  1. 登录网站(在表单中插入名称和密码)

  2. 登录后会下载一些我需要的HTML页面

  3. 这样的工具需要在Linux上运行,如果这样的工具看起来像是HTTP服务器的通用浏览器,那就太棒了。

    我可以使用哪些工具/库?

4 个答案:

答案 0 :(得分:0)

如果您熟悉Python,那么Scrapy可用。 有一个学习曲线,因为它是一个完整的爬行和屏幕抓取框架。 它应该能够满足您的需求。以下是simulating user logins的文档链接。它还支持用户代理欺骗,因此它可能看起来像是一个浏览器。它将遇到麻烦的一件事是与动态内容(即JavaScript)进行交互。

如果你想要一些非常简单的东西,请尝试scrape。我已经在一些项目中使用它,它已经能够完成这项工作。它更像是一个刮刀,所以你必须自己添加爬行逻辑。

答案 1 :(得分:0)

Wget支持身份验证和大多数其他支持Web的技术。因为该软件可以在控制台上运行,所以您可以使用您选择的语言将其包装(输入/输出)。

您也可以将其用作实用程序,无需任何其他编程即可获得您所需的几页。例如,the docs显示命令行选项--http-user=user--http-password=password以在HTTP服务器上进行身份验证。

事实上该网站声明:

  

这是一个非交互式命令行   工具,因此可以很容易地调用   脚本,cron作业,终端没有   X-Windows支持等

可以在most platforms上运行。

答案 2 :(得分:0)

一个众所周知的工具是BeautifulSoup(在Python中)。 这里有一个例子:
 http://lethain.com/entry/2008/aug/10/an-introduction-to-compassionate-screenscraping/ 在这里:
Where can I find some "hello world"-simple Beautiful Soup examples?

答案 3 :(得分:0)

我用mechanize写了我的。它非常简单,甚至内置了对robots.txt的支持,我认为这对于爬虫很重要。

以下是您提取链接的方式:

b = mechanize.Browser()
b.open('some-url')
links = b.links()

当然,您必须编写实际爬行的代码,并处理递归的深度。