Scrapy模拟登录赶集网的实现代码

这篇文章主要介绍了Scrapy模拟登录赶集网的实现代码,本文通过代码图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1.打开赶集网登录界面,先模拟登录并抓包,获得post请求的request参数

2. 我们只需构造出上面的参数传入formdata即可

参数分析:

setcookie:为自动登录所传的值,不勾选时认为0。

__hash__值的分析:只需要查看response网页源代码即可 ,然后用正则表达式提取

3.代码实现

1.workon到自己的虚拟环境 cmd切换到项目目录,输入scrapy startproject ganjiwangdenglu,然后就可以用pycharm打开该目录啦。

2.在pycharm terminal中输入scrapy ganji ganjicom 创建地址,如下为项目目录

3. 代码详情

import scrapy import re class GanJispider(scrapy.Spider): name = 'ganji' allowed_domains = ['ganji.com'] start_urls = ['https://passport.ganji.com/login.PHP'] def parse(self, response): hash_code = re.search(r'"__hash__":"(.+)"}', response.text).group(1) # 正则获取哈希 img_url = 'https://passport.ganji.com/ajax.PHP?dir=captcha&module=login_captcha' # 验证码url yield scrapy.Request(img_url, callback=self.do_formdata, Meta={'hash_code': hash_code}) # 发送获取验证码请求并保存验证码到本地 def do_formdata(self, response): with open('yzm.jpg', 'wb') as f: f.write(response.body) # 验证码三种方案:1,保存下来手动输入,2,云打码,3 tesseract模块,在这里我们手动输入 code = input('请输入验证码:') # 创建表单 formdata = { 'username': 'your_username', 'password': 'your_password', 'setcookie': '14', 'checkCode': code, 'next': '', 'source': 'passport', '__hash__': response.request.Meta['hash_code'] # Meta是在respose.request中 } login_url = "https://passport.ganji.com/login.PHP" yield scrapy.FormRequest(url=login_url, formdata=formdata, callback=self.after_login) # 发送登录请求 def after_login(self, response): print(response.text)

4.终端输入scrapy carwl ganji 即可大功告成 。

返回来的json字符串解析如下:

注:setting中的设置不在赘述。

总结

到此这篇关于Scrapy模拟登录赶集网的文章就介绍到这了,更多相关Scrapy登录赶集网内容搜索编程之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程之家!

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...