为了税收目的,我需要提取一些网站信息,不幸的是," export"功能不能提供我需要的所有信息。该信息确实存在于网站上,作为250多个网页中每个网页中的单个字段。我可以点击每一个并保存所有内容并使用脚本处理它们,但我宁愿学习一些东西。
{
echo 'scale=2.0'
echo 'in(pdb,file="../'"$i"'.ab.pdb")'
echo 'in(siz,file="charmm.siz")'
echo 'in(crg,file="charmm.crg")'
echo 'indi=z'
echo 'exdi=x'
echo 'prbrad=y'
} > $i.ab.sh
./software <$i.ab.sh >$i.ab.out
一揽子计划本身就是天赐之物,尽管我并不坚持这一点。问题是我必须登录我的网站。 <table border="1" cellspacing="0" >
的文档包含this link on authentication,记录了各种形式的身份验证,但不包含有关如何判断我的网站实际使用哪种身份验证形式的信息。当我登录网站时,我认为某种cookie会被放在我的计算机上,理论上,我可以在我的硬盘上找到它并将其与我的请求一起发送,但我接下来没有使用cookies的经验和/或授权,不知道发送什么。
如果我可以向网址列表发出一批请求,所有这些请求都在同一个网站上,并且只下载html,我可以处理它并构建报告。
在您的回复中,如果有关于http身份验证和Cookie如何协同工作的一般知识的链接,我也很乐意阅读它。
非常感谢您提供的任何帮助。
答案 0 :(得分:1)
尝试以下方法:
我正在使用BasicAuth
,因为它是最常见的Auth形式;您可以通过查看documentation
使用以下作为“基本代码”,您可以创建要访问的list
dict
urls
并循环播放它们。上面的代码还可以省去“在硬盘上找到cookie并加载它们”的麻烦。
编辑:看完OP的评论后:
import requests
login_url = "https://www.wyzant.com/sso/login" # this is the login for's action url, extracted it from the source code
payload = {
"Username" : "<username>",
"Password" : "<password>"
}
with requests.Session() as s:
r = s.post(login_url, data=payload)
cookies = r.cookies
r = s.get(url, cookies=cookies) # do whatever
我已经尝试了上面的确切代码,效果很好,我可以登录并访问学生仪表板。
干杯。