保持会话在python中生效
问题描述:
我正在试验capatcha图像。我有一个capatcha.php在我的本地主机,它将生成一个图像,该图像将被放入表格保持会话在python中生效
这是我的python代码来获取图像,提取其中的文本并将它们发送回表单。最后将结果表单保存为html。
import os
import requests
p = requests.session()
q = p.get('http://localhost/dhiraagu/Capatcha.php')
with open('data/a.png', 'wb') as f:
f.write(q.content)
os.system("tesseract C:\\Users\\Aiman\\Desktop\\Wataniya\\data\\a.png C:\\Users\\Aiman\\Desktop\\Wataniya\\data\\a")
with open("data\\a.txt") as cap:
capData = cap.read()
print("Capatcha line:"+capData)
num = input("Please enter the number :")
payload = {
'Code': capData,
'q': num
}
url = "http://localhost/dhiraagu/index.php"
r = p.post(url, data=payload)
with open("data\\log.html", "w") as file:
log = file.write(r.text)
但现在这个工作。我在这里看不到问题。 :困惑:
编辑 我已经解决了通过将代码with requests.session() as s:
线内:d
会不会有任何问题,如果我不发送“头”? ...
答
您需要保存cookie,然后将它们发送到服务器。 我已经例如用于获取Cookie,但并不难扩展,以给他们:
>>> import urllib.request
>>> import http.cookiejar
>>> cj = http.cookiejar.CookieJar()
>>> opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
>>> urllib.request.install_opener(opener)
>>> reply = urllib.request.urlopen("http://google.com")
>>> for cookie in cj:
... print(cookie)
,这里是你的cookies :)
我已经把一切都在一侧的'与实际要求做到了这一点.session()as s:' 它工作正常:D – 2014-08-29 11:17:46