【scrapy】模拟登陆知乎

这个网上有个通用的教程,然而为这个教程已经花费了太多时间进行调试,和知乎上的朋友交流,很多人也是这个地方遇到了问题,最后的结果。。是放弃了crawlspider。。

先贴下 这个链接。。。http://ju.outofmemory.cn/entry/105646 谨慎。。

针对上面这个教程,遇到的几点问题:

问题1:知乎的登陆url不再是/login了,根据email和phonenum分为/login/phone_num和login/email。因此start_requests的里的url需要更改

问题2:根据文档中,模拟登陆的FormRequest.from_response,在after_login中print response.body发现还是登陆页,这个也有人遇到,但是根据他的解释应该是登陆成功,但是获取url的方法没有调用到。。这个我没做,不过我自己放弃了,直接使用formRequest提交数据,并且FormRequest.from_response貌似是get方法,改成“method=post”,返回403。不知道是不是method不能改还是其他原因。

formRequest可以设置method为post。但是在after_login中发现after_login中 打印response.body,还是登陆页

问题3:最初针对问题2,我的解决思路是,在after_login里,重新使用登陆后的cookie重新访问zhihu.com,在make_request_from_url里,结果返回了

no more duplicates will be shown(see dupefilter_debug to show all duplicates)


问题4:在post_login里使用formRequest后,在after_login中 打印response.body,返回{r'0',msg:''}调用构建个人主页的request的话,是可以获取到的,response但是设置start_urls为people/****后,yield make_request_from_url(start_urls)会出现302重定向问题,同时parse_page里解析依旧是首页

问题5:拿一个不用登陆的url测试“https://www.zhihu.com/question/21872451“ :

在after_login里:

return [Request("https://www.zhihu.com/question/21872451",meta={'cookiejar':response.meta['cookiejar']},headers = self.headers_zhihu,callback
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值