编写使用任何服务器保持登录的爬网程序

时间:2009-11-26 15:18:31

标签: c# python http session web-crawler

我正在写一个爬虫。在抓取工具登录网站后,我想让抓取工具“始终保持登录状态”。我怎样才能做到这一点?客户端(如浏览器,爬虫等)是否使服务器遵守此规则?当服务器允许在一天中进行有限登录时,可能会发生这种情况。

1 个答案:

答案 0 :(得分:5)

“登录状态”通常由cookie表示。因此,您需要做的是存储该服务器在登录时发送的cookie信息,然后在每个后续请求中发送该cookie(如Aiden Bell在其消息中所述,thx)。

另见这个问题:

How to "keep-alive" with cookielib and httplib in python?

关于如何实施它的更全面的文章:

http://www.voidspace.org.uk/python/articles/cookielib.shtml

最简单的示例位于本手册页的底部:

https://docs.python.org/library/cookielib.html

您还可以使用常规浏览器(如Firefox)手动登录。然后,您将能够从该浏览器保存cookie并在您的爬虫中使用它。但是这样的cookie通常只在有限的时间内有效,所以它不是一个长期的全自动解决方案。但是,从网站上下载内容非常方便。

<强>更新

我刚刚在最近的一个问题中找到了另一个有趣的工具:

http://www.scrapy.org

它也可以进行基于cookie的登录:

http://doc.scrapy.org/topics/request-response.html#topics-request-response-ref-request-userlogin

我提到的问题是:

Scrapy domain_name for spider

希望这有帮助。