关于爬虫参数验证码正确但爬取页面显示验证码错误
如图是存储的验证码图片:程序输出的验证码:
存储的网页信息:
源代码:(稍微隐藏了一下密码,不过一定没输错)
你没有携带cookie,没有做会话保持 代码发全 菜de嚣张 发表于 2021-8-7 22:49
发源代码哦
图片不能改 1q23w31 发表于 2021-8-7 22:28
你没有携带cookie,没有做会话保持
这是什么意思呢?就算我的参数都全了也会失败吗 suchocolate 发表于 2021-8-7 22:36
代码发全
补上了,抱歉 菜de嚣张 发表于 2021-8-7 22:50
这是什么意思呢?就算我的参数都全了也会失败吗
提交的cookie和获取验证码的cookie不一致,服务器认为不是同一个设备 1q23w31 发表于 2021-8-7 22:49
发源代码哦
图片不能改
#其中yanzheng函数返回的是str类型的验证码
import requests
from yanzheng import yanzhengget
from lxml import etree
#分装识别图片
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
url='https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'
response1=requests.get(url,headers=headers).text
tree=etree.HTML(response1)
image_url = 'https://so.gushiwen.cn'+tree.xpath('//*[@id="imgCode"]/@src')
image=requests.get(image_url,headers=headers).content
#保存了验证码图片
with open('./yanzheng.jpg','wb')as f:
f.write(image)
thecode = yanzhengget('./yanzheng.jpg',1902)
data={
'__VIEWSTATE':'yy1mHtq84x6Uv/cSRZnkq90uDVg5JsYyXUgjqu5FE7vfcm840Lc306owopK6yka/wK3YaBFAst6KglZLwbJrUy1DqlOuobS/OzxznhO50shQmbg19s0MqqquYh4=',
'__VIEWSTATEGENERATOR':'C93BE1AE',
'from':'http://so.gushiwen.cn/user/collect.aspx',
'email':'334026394@qq.com',
'pwd':'qw123456',
'code':thecode,
'denglu':'登录'
}
url='https://so.gushiwen.cn/user/login.aspx?from=http%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx'
print(thecode)
response=requests.get(url,data,headers=headers).text
with open('古诗.html','w',encoding='utf-8')as f:
f.write(response) 1q23w31 发表于 2021-8-7 22:52
提交的cookie和获取验证码的cookie不一致,服务器认为不是同一个设备
可是我获取验证码图片也是用的程序,登录也是程序,这样的话不是应该是一样的吗? 菜de嚣张 发表于 2021-8-7 22:53
#其中yanzheng函数返回的是str类型的验证码
import requests
from yanzheng import yanzhengget
#其中yanzheng函数返回的是str类型的验证码
import requests
from yanzheng import yanzhengget
from lxml import etree
#分装识别图片
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
url='https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'
session = requests.Session()
response1=session.get(url,headers=headers).text
tree=etree.HTML(response1)
image_url = 'https://so.gushiwen.cn'+tree.xpath('//*[@id="imgCode"]/@src')
image=session.get(image_url,headers=headers).content
#保存了验证码图片
with open('./yanzheng.jpg','wb')as f:
f.write(image)
thecode = yanzhengget('./yanzheng.jpg',1902)
data={
'__VIEWSTATE':'yy1mHtq84x6Uv/cSRZnkq90uDVg5JsYyXUgjqu5FE7vfcm840Lc306owopK6yka/wK3YaBFAst6KglZLwbJrUy1DqlOuobS/OzxznhO50shQmbg19s0MqqquYh4=',
'__VIEWSTATEGENERATOR':'C93BE1AE',
'from':'http://so.gushiwen.cn/user/collect.aspx',
'email':'334026394@qq.com',
'pwd':'qw123456',
'code':thecode,
'denglu':'登录'
}
url='https://so.gushiwen.cn/user/login.aspx?from=http%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx'
print(thecode)
response=session.get(url,data,headers=headers).text
with open('古诗.html','w',encoding='utf-8')as f:
f.write(response)
试一下 菜de嚣张 发表于 2021-8-7 22:55
可是我获取验证码图片也是用的程序,登录也是程序,这样的话不是应该是一样的吗?
携带的身份信息不同,服务器就认为不是同一个人 这个没显示验证码错误,但还是没获得数据
1q23w31 发表于 2021-8-7 22:58
携带的身份信息不同,服务器就认为不是同一个人
你看,这个没显示验证错误,但是界面还是一样 本帖最后由 1q23w31 于 2021-8-8 08:36 编辑
菜de嚣张 发表于 2021-8-7 23:05
你看,这个没显示验证错误,但是界面还是一样
#其中yanzheng函数返回的是str类型的验证码
import requests
from yanzheng import yanzhengget
from lxml import etree
#分装识别图片
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
url='https://so.gushiwen.cn/user/login.aspx?from=http://so.gushiwen.cn/user/collect.aspx'
session = requests.Session()
response1=session.get(url,headers=headers).text
tree=etree.HTML(response1)
image_url = 'https://so.gushiwen.cn'+tree.xpath('//*[@id="imgCode"]/@src')
image=session.get(image_url,headers=headers).content
#保存了验证码图片
with open('./yanzheng.jpg','wb')as f:
f.write(image)
thecode = yanzhengget('./yanzheng.jpg',1902)
thecode = input("验证码:")data={
'__VIEWSTATE':'yy1mHtq84x6Uv/cSRZnkq90uDVg5JsYyXUgjqu5FE7vfcm840Lc306owopK6yka/wK3YaBFAst6KglZLwbJrUy1DqlOuobS/OzxznhO50shQmbg19s0MqqquYh4=',
'__VIEWSTATEGENERATOR':'C93BE1AE',
'from':'http://so.gushiwen.cn/user/collect.aspx',
'email':'334026394@qq.com',
'pwd':'qw123456',
'code':thecode,
'denglu':'登录'
}
url='https://so.gushiwen.cn/user/login.aspx?from=http%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx'
print(thecode)
response=session.post(url,data,headers=headers).text
with open('古诗.html','w',encoding='utf-8')as f:
f.write(response)
测试过了,你给的密码错的,没有问题
1q23w31 发表于 2021-8-8 08:35
测试过了,你给的密码错的,没有问题
啊抱歉,我改了一下,之前测试的确实没通过,qw123456789要不您再试试 981048327 菜de嚣张 发表于 2021-8-8 10:05
啊抱歉,我改了一下,之前测试的确实没通过,qw123456789要不您再试试
已成功登录
不会改的话,加qq1260121341 1q23w31 发表于 2021-8-8 08:35
测试过了,你给的密码错的,没有问题
抱歉是我这边的问题,可是这个代码在获取图片的时候也用的session,而且图片网站也有set—cookie,这样的话不是会使得登录界面获得的cookie改变吗,我尝试把这句改为requests.get,但这样的话就错了 菜de嚣张 发表于 2021-8-8 10:58
抱歉是我这边的问题,可是这个代码在获取图片的时候也用的session,而且图片网站也有set—cookie,这样的 ...
不用管cookie requests的session会帮你自动处理
页:
[1]
2