关于模拟登陆慧聪网

chenxu1982 2019-12-05 02:22:25
由于现在经常要在慧聪网手动发布消息,感觉非常烦琐,所以想通过代码来实现自动的登陆发布相关信息。
我希望通过CURL来实现相关功能,结果发现根本无法登陆不上,不知道是我哪里写错了还是现在技术更新换代后以前的方式不能用了,下面是我的curl部分代码,希望大家帮我看下问题,谢谢
慧聪网的登陆地址为: https://sso.hc360.com/ssologin


/**
* @param $url 提交链接
* @param bool $params 提交参数
* @param int $ispost 是否post
* @param int $https 是否https
* @param int $header 是否返回header内容
* @param int $set_cookie 设置cookie
* @param string $cookie_file cookie文件保存地址
* @param string $set_header 设置头
* @return bool|string
*/
function getNormalUrl($url,$params = false, $ispost = 0, $https = 0,$header = 0,$set_cookie = 0,$cookie_file = "",$set_header = '')
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if (1 == $set_cookie){ //获取相关页面cookie并写入文件
if ("" != $cookie_file){ //cookie文件保存位置(绝对路径)
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
}
}
if (2 == $set_cookie){
if ("" != $cookie_file){ //提交cookie文件位置(绝对路径)
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
}
}

if ($https) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在
}
if ($ispost) {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_URL, $url);
} else {
if ($params) {
if (is_array($params)) {
$params = http_build_query($params);
}
curl_setopt($ch, CURLOPT_URL, $url . '?' . $params); // 此处就是参数的列表,给你加了个?
} else {
curl_setopt($ch, CURLOPT_URL, $url);
}
}
if($header){
curl_setopt($ch, CURLOPT_HEADER, 1); // 显示返回的Header区域内容
}else{
curl_setopt($ch, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
}

if('' != $set_header){ //设置http提交格式
curl_setopt($ch, CURLOPT_HTTPHEADER, $set_header);
}

if (0 != $img_upload){
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true);
}

$data = curl_exec($ch);
$err = curl_error($ch);

curl_close($ch);

if (false === $data){
return false;
}else{
return $data;
}
}
...全文
122 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenxu1982 2019-12-05
  • 打赏
  • 举报
回复
现在风口浪尖的,谁吃饱饭去做违法的事啊,我只是想自己轻松点而已。另外你上面说的这个去掉也是一样的。
kis龍 2019-12-05
  • 打赏
  • 举报
回复
$https = 0, 这个删了, 更换url 判断是不是 https 请求

    if (1 == $set_cookie){  //获取相关页面cookie并写入文件
        if ("" != $cookie_file){  //cookie文件保存位置(绝对路径)
            curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
        }
    }
    if (2 == $set_cookie){
        if ("" != $cookie_file){  //提交cookie文件位置(绝对路径)
            curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
        }
    }
// 这段改成

        if ($cookie_file){  //cookie文件保存位置(绝对路径), 需要判断下目录/文件有没有写权限
            curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
            curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
        }

请合理使用技术, 不要做违法的事情哦.

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧