Python程序.pyvs粘贴未通过基本安装验证的代码

2024-09-27 22:45:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为一个名为statseeker的报告工具打开一个内部网页,该工具存储从打开URL时运行的报告生成的图像。到目前为止,我的观点是:

import urllib
import urllib2
import lxml, lxml.html



ID = '4050'

PorS = '1'

base_link = 'http://statseeker/cgi/nim-report?rid=42237&command=Graph&mode=ping&list=jc-'

dash = '-'

end_link =  '&tfc_fav=range+%3D+start_of_today+-+1d+to+now%3B&year=&month=&day=&hour=&minute=&duration=&wday_from=&wday_to=&time_from=&time_to=&tz=America%2FChicago&tfc=range+%3D+start_of_today+-+1d+to+now%3B&rtype=Delay&graph_type=Filled&db_type=Average&x_step=1&interval=60&y_height=100&y_gridlines=5&y_max=&y_max_power=1&x_gridlines=on&legend=on'


urlauth = base_link + ID + dash + tPorS + end_link

print urlauth

realm = 'statseeker'
username = 'username'
password = '*******'
auth_handler = urllib2.HTTPBasicAuthHandler()
auth_handler.add_password(realm, urlauth, username, password)
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
data = opener.open(urlauth).read()

html = lxml.html.fromstring(data)
imgs = html.cssselect('img.graph')
for x in imgs:
   y = 'http://statseeker%s' % (x.attrib['src'])
   urllib.urlretrieve(y, 'test.jpg')
   print 'http://statseeker%s' % (x.attrib['src'])
   with open('statseeker.html', 'a') as f:
    f.write(y)

当我在python中通过复制和粘贴手动运行时,代码执行得很好。你知道吗

当我将它保存为grab.py并通过CMD python grab.py运行它时,它会要求我再次在第urllib.urlretrieve(y, 'test.jpg')行登录

所以我推断,出于某种原因,这不是通过它的身份验证

opener = urllib2.build_opener(auth_handler)
    urllib2.install_opener(opener)

但我不知道为什么。你知道吗


Tags: toimportauthhttphtmllinkusernamepassword

热门问题