2

比如说,我浏览到需要登录才能访问内容的网站(也在 Intranet 上)。我将填写必填字段...例如,从浏览器本身登录所需的用户名、密码和任何验证码等。

一旦我登录到该站点,登录后可以从第一页上的多个链接和选项卡中抓取很多好东西。

现在,从这一点开始(即从浏览器登录后)..我想控制页面并从 urllib2 下载......就像逐页浏览,在每个页面上下载 pdf 和图像等。

我知道我们可以直接使用 urllib2(或机械化)中的所有内容(即登录到页面并完成整个操作)。

但是,对于某些网站.. 了解登录机制、所需的隐藏参数、引荐来源、验证码、cookie 和弹出窗口真的很痛苦。

请指教。希望我的问题有意义。

总之,我希望使用网络浏览器手动完成初始登录部分......然后接管自动化以通过 urllib2 抓取。

4

2 回答 2

4

你考虑过硒吗?它是关于浏览器自动化而不是 http 请求 (urllib2),您可以在步骤之间操作浏览器。

于 2012-09-12T07:11:50.163 回答
4

您想使用该cookielib模块。

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

您可以使用浏览器登录,然后将 cookie 导出到 Netscape 样式的cookie.txt文件中。然后从 python 你将能够加载它并获取你需要的资源。cookie 将一直有效,直到网站使您的会话到期(通常大约 30 天)。

import cookielib, urllib2
cj = cookielib.MozillaCookieJar()
cj.load('cookie.txt')
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
r = opener.open("http://example.com/resource")

Chrome 和 Firefox 的插件可以以这种格式导出 cookie。例如:

https://chrome.google.com/webstore/detail/lopabhfecdfhgogdbojmaicoicjekelh

https://addons.mozilla.org/en-US/firefox/addon/export-cookies/

于 2012-09-12T06:38:47.147 回答