![如何自动从使用 Java Servlet 的 SSL 站点获取图像](https://linux22.com/image/1247644/%E5%A6%82%E4%BD%95%E8%87%AA%E5%8A%A8%E4%BB%8E%E4%BD%BF%E7%94%A8%20Java%20Servlet%20%E7%9A%84%20SSL%20%E7%AB%99%E7%82%B9%E8%8E%B7%E5%8F%96%E5%9B%BE%E5%83%8F.png)
这很棘手。我想使用 curl、wget 或任何其他工具登录提供登录表单的 SSL 网站。然后我想访问该域中的几个链接并获取某些图像。
我让它在 bash 中工作:
curl -c /tmp/cookie.txt -d "login=username&password=passw&send=submit" https://URI
稍后使用 cookie
curl -b /tmp/cookie.txt https://URI
诀窍在于您必须将凭证提交到action=
html 表单字段的地址。
我现在面临的另一个问题是,这不会写入任何图像,因为图像的 URL 是由某些 Servlet URI 构建的:
<img src="URI/servlet/manyParametersWith?And=AndLotsOf&">
答案1
尝试使用 Python 和 mechanize(也适用于 Perl)。你可以这样做:
import mechanize
br=mechanize.Browser()
br.open('http://www.yourfavoritesite.com')
br.select_form(nr=0) #check yoursite forms to match the correct number
br['Username']='Username' #use the proper input type=text name
br['Password']='Password' #use the proper input type=password name
br.submit()
br.retrieve('https://www.yourfavoritesite.com/pagetoretrieve.html','yourfavoritepage.html')
答案2
好的,写入图像的唯一可能性是将其显示在浏览器中,例如通过 php echo,然后通过 php 将其写入磁盘。一些用户报告说这可能有效。