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"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中的设置不在赘述。
总结