代码之家  ›  专栏  ›  技术社区  ›  asyncwait

正在写入与任何服务器保持登录的爬虫程序

  •  0
  • asyncwait  · 技术社区  · 16 年前

    我在写爬虫。一旦爬虫登录到一个网站后,我想让爬虫“始终保持登录状态”。我该怎么做?客户端(如浏览器、爬虫等)是否使服务器遵守此规则?当服务器允许有限的日登录时,可能会发生这种情况。

    1 回复  |  直到 11 年前
        1
  •  5
  •   Community Mohan Dere    9 年前

    “登录状态”通常由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

    希望这有帮助。