某团开店宝上的IM聊天,如何拉取客户发送的内容,再通过AI回答客户?
现在面临的问题,授权登录后可以拿到cookie,但是不能直接通过cookie登录(大概是有校验)
某团开店宝上的IM聊天,如何拉取客户发送的内容,再通过AI回答客户
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 - 你可以看下这个问题的回答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注入小节, 巩固相关知识点
解决 无用评论 打赏 举报
悬赏问题
- ¥15 求帮我调试一下freefem代码
- ¥15 R语言Rstudio突然无法启动
- ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
- ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
- ¥15 用windows做服务的同志有吗
- ¥60 求一个简单的网页(标签-安全|关键词-上传)
- ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?
- ¥15 有偿求跨组件数据流路径图