峰大爷 2022-02-08 17:27 采纳率: 83.9%
浏览 236
已结题

搞过推特爬虫的进,抓取推特出现问题

抓取590多个用户的推文,逻辑是需要首先获取一个用户的id,然后通过用户id构造一个get请求访问推文的api
也就是说抓取一个用户的推文就需要发送两个请求
但是推特只能一次抓取1000次,也就是我的请求数已经超出了,超出了就会报错
然后我在重新启动程序,又可以正常抓取
所以我想着是否是中间需要睡眠一段时间,然后再程序报错时设置一个时间,但是发现时间结束后依然会显示超出1000请求而报错


        while True:
            user_id_url = f'https://twitter.com/i/api/graphql/hc-pka9A7gyS3xODIafnrQ/UserByScreenName?variables=%7B%22screen_name%22%3A%22{username}%22%2C%22withHighlightedLabel%22%3Atrue%7D'
            user_id_url = user_id_url.replace("%27", "%22").replace("True", "true")
            csrf_token = random.choice(csrf_token_list)
            cookie = words[csrf_token]['cookie']
            authorization = words[csrf_token]['authorization']
            self.headers['cookie'] = cookie
            self.headers['authorization'] = authorization
            resp = requests.get(
                url=user_id_url,
                headers=self.headers
            )

            if '"Bad guest token"' in resp.text or not resp.text:
                # 重新获取x-guest-token
                guest_token = get_token()
                self.headers['x-guest-token'] = guest_token
                if i == 4:
                    return None
                continue

            if '"name":"NotFoundError"' in resp.text or 'AuthorizationError' in resp.text:
                #账号不存在
                return None
            if 'RateLimitedError' in resp.text:
                print('进入休眠')
                print(username)
                print(resp.text)
                time.sleep(20)
                return None
  • 写回答

2条回答 默认 最新

  • merlins. 2022-02-15 16:39
    关注

    对的,失效了,关键词还可以抓

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月10日
  • 已采纳回答 4月2日
  • 创建了问题 2月8日

悬赏问题

  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭