Shabusi_GGh 2023-07-13 17:16 采纳率: 46.7%
浏览 9

某团开店宝上的IM聊天,如何拉取客户发送的内容,再通过AI回答客户

某团开店宝上的IM聊天,如何拉取客户发送的内容,再通过AI回答客户?
现在面临的问题,授权登录后可以拿到cookie,但是不能直接通过cookie登录(大概是有校验)

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-07-13 21:22
    关注
    • 你可以看下这个问题的回答https://ask.csdn.net/questions/785860
    • 除此之外, 这篇博客: 复杂网站的爬取实践中的 1.cookie及其用法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • cookie其实随处可见。当我们需要经常性登录一个网站又不想每次都输入账号密码时,通常会选择“记住密码”标识的选项:
      在这里插入图片描述
      勾选之后,就可以很长时间不用再次输入密码或者会直接自动登录了。这就是cookie在起作用。
      如果我们登录kaikeba账号并勾选“记住我”,服务器就会生成一个cookie和这个账号绑定,接着会告诉浏览器,让浏览器把这个cookie存储到本地电脑,下一次浏览器带着cookie访问时,服务器可以直接识别,不需要再次输入账号和密码。
      当然,cookie也有时效性,如果长时间未使用或本地存储的cookie丢失,亦或账号信息有所变动,网页还是需要重新登录,这就是原来的cookie失效了。
      下面我们继续查看Form Data:
      在这里插入图片描述
      log和pwd 显然是我们的账号和密码,wp-submit是登录的按钮,redirect_to 后面带的链接是我们登录后会跳转到的页面网址,但是testcookie暂时还看不出是什么。
      既然关于登录的
      参数已经都找到了,我们就先尝试一下向服务器发起登录请求:

      import requests
      url='https://xiaoke.kaikeba.com/example/wordpress/wp-login.php'
      headers = {
          'User-Agent':
          'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'
      }
      data={
      'log': 'kaikeba',
      'pwd': 'kaikeba888',
      'wp-submit': '登录',
      'redirect_to': 'https://xiaoke.kaikeba.com/example/wordpress/2019/10/17/%e5%bc%80%e8%af%be%e5%90%a7%e6%97%a0%e6%95%8c%e5%a5%bd%e5%90%83%e7%9a%84%e9%a3%9f%e5%a0%82%e4%b8%80%e5%91%a8%e8%8f%9c%e8%b0%b1/',
      'testcookie': '1'
      }
      log_in=requests.post(url,headers=headers,data=data)
      # .post()和.get()方法的用法很类似,参考get()的用法写代码即可
      print(log_in.status_code)
      # 结果为:200
      

      看到这个状态码,意味着服务器接收到并响应了登录请求,我们已经登录成功,接下来我们就开始研究怎么进行评论。
      我们要利用程序来发表评论,就要先来发表一次评论,观察请求栏会有什么变化。首先清空请求栏,然后发表一条评论观察:
      在这里插入图片描述
      重新加载出来的请求里,wp-comments-post.php的Form Data的内容已经更新出我们刚刚发表评论的内容了。comment的内容对应我们刚刚发表的评论内容,submit对应发表评论按钮,另外两个参数看不太懂,不过也没关系,它们都是和评论有关的参数,所以直接照抄就好。
      细看之下还会发现,wp-comments-post.php的数据并没有藏在 XHR 中,而是放在了Other 里。但常规情况下,大部分网站都会把这样的数据存储在 XHR 里,比如知乎的回答。
      现在我们回忆一下发表评论的过程:首先得登录,其次得提取和调用登录的 cookie,然后还需要评论的参数,才能发起评论的请求。
      现在,我们就只差提取和调用登录的 cookie了。而cookie是每个requests对象的属性,可以使用requests对象.cookie的方式查到:

      import requests
      url='https://xiaoke.kaikeba.com/example/wordpress/wp-login.php'
      headers = {
          'User-Agent':
          'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'
      }
      data={
      'log': 'kaikeba',
      'pwd': 'kaikeba888',
      'wp-submit': '登录',
      'redirect_to': 'https://xiaoke.kaikeba.com/example/wordpress/2019/10/17/%e5%bc%80%e8%af%be%e5%90%a7%e6%97%a0%e6%95%8c%e5%a5%bd%e5%90%83%e7%9a%84%e9%a3%9f%e5%a0%82%e4%b8%80%e5%91%a8%e8%8f%9c%e8%b0%b1/',
      'testcookie': '1'
      }
      log_in=requests.post(url,headers=headers,data=data)
      
      # 以下是新增代码
      cookie = log_in.cookies
      # 提取 cookie 的方法:调用 requests 对象(log_in)的cookie属性获得登录的cookie并保存
      
      url_comment = 'https://xiaoke.kaikeba.com/example/wordpress/wp-comments-post.php'
      # 我们想要评论的文章网址
      
      data_comment = {
          'comment': input('请输入你想要发表的评论:'),
          'submit': '发表评论',
          'comment_post_ID': '35',
          'comment_parent': '0'
      }
      # 把有关评论的参数封装成字典
      
      comment = requests.post(url_comment,headers=headers,data=data_comment,cookies=cookie)
      # 用 requests.post 发起发表评论的请求,放入参数:文章网址、headers、评论参数、cookie 参数,赋值给 comment
      # 调用 cookie 的方法就是在post请求中传入cookies = cookie的参数
      
      print(comment.status_code)
      # 打印出 comment 的状态码,若状态码等于 200,则证明我们评论成功
      
      

      运行这段代码,我们可以输入“下面我们尝试发表评论”,观察运行结果:

      在这里插入图片描述
      到这里我们已经成功发表了评论。但是项目并没有结束,这个代码还有优化空间。
      注:这个网站不能发送重复的评论,大家练习的时候记得换评论内容

    • 您还可以看一下 刘海龙老师的渗透测试视频教程课程中的 COOKIE注入小节, 巩固相关知识点
    评论

报告相同问题?

问题事件

  • 创建了问题 7月13日

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图