オンラインで見つけたこのコードを使用して、Web ページをチェックし、最後にチェックしてから変更されているかどうかを確認しています。ただし、ターゲットではなく、別のWebページを介して行われる認証を必要とするサイトの背後で動作する必要があります。
通常、Python 以外の方法でこれを処理する方法は、Cookie をエクスポートし、Cookie にアクセスするプログラム (wget など) に渡すことです。
mechanize を使用する必要があると思いますが、必要な 1 つの 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