1

我正在使用我在网上找到的这段代码来检查一个网页,看看它自上次检查以来是否被修改过。但是,我现在需要它在需要通过另一个网页而不是目标完成的身份验证的站点后面工作。

通常,我将如何以非 python 方式处理这个问题是导出 cookie 并将 cookie 传递给将要访问它的程序,比如 wget。

我想我需要使用 mechanize 但是我很难找到如何导入或设置我需要的一个 cookie。希望有人能指出似乎在逃避我的事情。

#!/usr/bin/env python
import os, sys, urllib
savepath = '/home/.checkurls/'

errormsg = '%s: %s: No such file or directory'
urlspath = savepath + 'urls.txt'
for path in savepath, urlspath:
        if not os.path.exists(path):
                print errormsg % (__file__, path)
                sys.exit(0)
urlfile = open(urlspath, 'r').readlines(); urlstring = ''
for url in urlfile:
        if not 'http://' in url:
                url = 'http://' + url
        url = url.replace('\n', '')
        filename = url.replace('/', '%2f')
        if '-v' in sys.argv:
                print '%s: %s ...' % (__file__, url)
        if not os.path.isfile(savepath + filename):
                urllib.urlretrieve(url, savepath + filename)
        filelines = open(savepath + filename, 'r').readlines()
        urllines = urllib.urlopen(url).readlines()
        if not filelines == urllines:
                open(savepath + filename, 'w').writelines(urllines)
                urlstring += '"' + url + '" '

if urlstring:
        os.popen("echo 'Page changed!' | mailx -s \"Update:\" $user")
else:
        if '-v' in sys.argv:
                print '%s: nothing for today' % __file__

我希望只设置 cookie 或导入它,但似乎我的任何尝试都不是正确的格式,然后继续使用 mechanize.urlopen 和 mechanize.urlretrieve。

cookie 数据在这里:

my.college.edu        FALSE   /       FALSE   0       SUMO_REGISTRATION_AuthCo
okie    57DCC7BFF9A58C9D0
4

0 回答 0