本文主要介绍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登录市场的更多信息,请搜索我们之前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。