本文主要介绍Scrapy模拟登录市场的实现代码。本文通过代码、图形和文本的结合,非常详细地为您介绍,对您的学习或工作有一定的参考价值。有需要的朋友可以参考一下。
1.打开市场的登录界面,先模拟登录抢包,获取post请求的请求参数。
2.我们只需要构造上述参数,并将它们传递到formdata中。
参数分析:
Setcookie:为自动登录传递的值;未选中时,默认为0。
__hash__ value分析:只看响应网页的源代码,然后用正则表达式提取。
3.代码实现
1 .工作到自己的虚拟环境cmd切换到项目目录,输入scrapy start project ganjiwangenglu,然后就可以用pycharm打开目录了。
2.在pycharm终端输入scrapy ganji ganjicom的创建地址,下面是项目目录。
3.代码详细信息
进口废品
进口re
GanjiSpider类(scrapy。蜘蛛):
name=ganji
allowed_domains=[ganji.com]
start _ URLs=[ https://passport . ganji . com/log in . PHP ]
定义解析(自身,响应):
hash _ code=re . search(r _ _ hash _ _ :(。) } ,response.text)。group (1) #定期获取散列
img _ URL= https://passport . ganji . com/Ajax . PHP?Dir=验证码模块=login _ captcha #验证码url
Yieldscrapy.request (img _ URL,callback=self.do _ formdata,meta={hash _ code: hash _ code}) #发送请求获取验证码并保存在本地。
def do_formdata(self,response):
以open(yzm.jpg , wb )为f:
f.write(响应.正文)
#验证码有三种方案:1、保存后手动输入,2、云码,3、魔方模块。这里我们手动输入。
Code=input(请输入验证码:)
#创建表单
表单数据={
用户名:您的用户名,
密码:您的密码,
setcookie: 14 ,
checkCode :代码,
下一个“:”,
来源:护照,
_ _ hash _ _ :response.request meta[ hash _ code ]# meta在response . request中。
}
log in _ URL= https://passport . ganji . com/log in . PHP
yield scratch . form request(URL=log in _ URL,formdata=formdata,callback=self.after _ login) #发送登录请求。
def after_login(self,response):
打印(响应.文本)
4.终端输入scrapy carwl ganji就大功告成了。
返回的json字符串解析如下:
注意:这里不描述设置中的设置。
总结
关于Scrapy的模拟登录市场的这篇文章到此为止。关于Scrapy登录市场的更多信息,请搜索我们之前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!