一个表情包 2017-10-22 02:51 采纳率: 0%
浏览 2376

用scrapy模拟登录知乎,返回“登录过于频繁,请稍后重试”

之前用requests模拟登录,加载到本地一直自动刷新。用scrapy登陆后,返回200和“登录过于频繁,请稍后重试”,求助dalao,搞了好多天了。代码如下:

-*- coding: utf-8 -*-

import scrapy
import json
import re

class ZhihuSpider(scrapy.Spider):
name = 'zhihu'
allowed_domains = ['www.zhihu.com']
start_urls = ['http://www.zhihu.com/']

agent = "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0"
header = {
    "HOST": "www.zhihu.com",
    "REFERER": "https://www.zhihu.com",
    "User-Agent": agent,
    "Connection":"Keep-Alive"
}

def parse(self, response):
    pass

def start_requests(self):
    return [scrapy.Request("https://www.zhihu.com/signin?next=/",headers=self.header,callback=self.login)]

def login(self,response):
    match_obj = re.match('.*name="_xsrf" value="(.*?)"', response.text, re.DOTALL)
    xsrf = ''
    if match_obj:
        xsrf = (match_obj.group(1))
    if xsrf:
        post_url = "https://www.zhihu.com/login/phone_num"
        post_date = {
            "_xsrf": xsrf,
            "password": "13247161221",
            "phone_num": "yun10791023",
            'captcha_type': 'cn',
            'remember_me': 'true',
        }

        return [scrapy.FormRequest(
            url = post_url,
            formdata = post_date,
            headers = self.header,
            callback = self.checklogin
        )]
def checklogin(self,response):
    #验证服务器的返回数据判断是否成功
    text_json = json.loads(response.text)
    #此处打断点出现:登录过于频繁,请稍后重试
    if "msg" in text_json and text_json["msg"] == "登陆成功":
        for url in self.start_urls:
            yield scrapy.Request(url,dont_filter=False,headers = self.header,)
  • 写回答

2条回答 默认 最新

  • 落日的余晖1206 2017-12-14 03:02
    关注

    估计是登录参数缺失的问题

    评论

报告相同问题?

悬赏问题

  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥30 用arduino开发esp32控制ps2手柄一直报错
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿