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

asy*_*ait 0 c# python session http web-crawler

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

fvi*_*tor 5

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

另见这个问题:

如何在python中使用cookielib和httplib"保持活着"?

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

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

希望这可以帮助.