火车头采集discuz论坛回复可见内容的一些坑

微信扫一扫,分享到朋友圈

火车头采集discuz论坛回复可见内容的一些坑
收藏 00

客户需求

提供了一个discuz论坛,会员账号,要求获取文章页下载链接,下载链接是回复可见的。

思路

需要登录才能看到,这个火车头的cookie功能就可以解决了;

回复可见

办法1:是做个回复模块,规则里获取一些帖子的fid tid 等重要信息,利用模块回复,这样缺少了即时性。

办法2:用外部接口,调用帖子地址,通过帖子地址获取登录页,回帖页等信息,完成整个回复过程,并把回复后的。

这里选择了办法2

1.用抓包获取post请求的参数。

2.用python模拟回复。

遇到的问题

post请求后提示“您当前的访问请求当中含有非法字符“经查询一些相关资料发现discuz有个formhash验证。

  • formhash是服务器返回给浏览器的一个字段,用于验证用户提交数据的合法性。
  • 登陆用户的formhash在115天内是固定的;而未登录用户每次注册formhash都会改变。
  • 提交表单时,将formhash值一起提交;discuz由submitcheck()函数校验formhash值是否正确;如果不正确,则认为是非法提交数据。submitcheck()在uchome的include/function_common.php文件中。

解决

拿了一篇文章测试在文章的源码果然看到了formhash,用正则获取formhash值,再用requests库的session共享cookie成功发布

一个热爱互联网的咸鱼

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片

热门

    抱歉,30天内未发布文章!
返回顶部