我想知道如何在python中使用urllib2发送cookie和phpssid? 实际上我想阅读我用浏览器登录的页面,但是当我尝试用这个脚本阅读它时,我会遇到一个文本,似乎说你错过了一些东西。 我的剧本:
#!/usr/bin/python
import urllib2
f = urllib2.urlopen('http://mywebsite.com/sub/create.php?id=20')
content = f.read()
file = open('file.txt', 'w')
file.write(content)
file.close()
我保存的错误消息而不是真实页面:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/number/domains/1number.com/public_html/s4/app/mywidgets.php:1) in /home/number/domains/1number.com/public_html/s4/app/mywidgets.php on line 23
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/number/domains/1number.com/public_html/s4/app/mywidgets.php:1) in /home/number/domains/1number.com/public_html/s4/app/mywidgets.php on line 23
Warning: Cannot modify header information - headers already sent by (output started at /home/number/domains/1number.com/public_html/s4/app/mywidgets.php:1) in /home/number/domains/1number.com/public_html/s4/lib/webservice.php on line 0
究竟是什么问题?(请给我一个简单的方法来实现我想要的东西)
提前致谢
答案 0 :(得分:0)
对于SID,发送它的方法之一是作为查询字符串的一部分,而您已经这样做了。至少我认为这是你网址的id=20
部分。
对于Cookie,您想要的一切都在cookielib
。
创建一个用于与服务器进行会话的CookieJar
是微不足道的。如果要从浏览器导入cookie,有三种可能性:
FileCookieJar
。sqlite3
模块进行阅读,然后手动填充CookieJar
。CookieJar
。如果您不想阅读有关如何使用cookielib
的文档,请参阅最后的the examples,其中显示如何使用CookieJar
urllib2
},这正是你想要做的。
如果您遇到问题,请阅读文档。
与此同时,您向我们展示的是(a)警告,而不是错误,以及(b)显然是服务器端的问题,而不是您的脚本。服务器永远不应该喷出一堆警告和其他空白页面。如果您或您的某个同事负责服务器代码,则需要先修复(并且您当前的简单Python脚本可以作为一个很好的回归测试用例)。