php - 使用安全登录抓取网站内容

标签 php curl web-scraping

我正在尝试抓取安全登录网站的内容 但做不到 该站点的登录有用户名、密码、密码三个选项 这是我正在使用的代码

<?php

// HTTP authentication

$url = "http://aftabcurrency.com/login_script.php";

$ch = curl_init();    

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

curl_setopt($ch, CURLOPT_URL, $url); 
$cookie = 'cookies.txt';
$timeout = 30;
curl_setopt($curl, CURLOPT_TIMEOUT,         10); 
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT,  $timeout );
curl_setopt($curl, CURLOPT_COOKIEJAR,       $cookie);
curl_setopt($curl, CURLOPT_COOKIEFILE,      $cookie);

curl_setopt ($ch, CURLOPT_POST, 1); 
curl_setopt ($ch,CURLOPT_POSTFIELDS,"user_name=user&user_password=pass&passcode=code");             

$result = curl_exec($ch); 

curl_close($ch); 

echo $result;

?>

最佳答案

您需要执行一个POSThttp://aftabcurrency.com/login_script.php 您的 curl 还需要接受 cookie。
身份验证后,脚本将重定向您,因此您还需要添加 CURLOPT_FOLLOWACTION

这是你的脚本的编辑版本,我无法在 http://aftabcurrency.com/ 上测试它希望它有效:

$url = "http://aftabcurrency.com/login_script.php";

$ch = curl_init();    
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

curl_setopt($ch, CURLOPT_URL, $url); 
$cookie = 'cookies.txt';
$timeout = 30;

curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT,         10); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,  $timeout );
curl_setopt($ch, CURLOPT_COOKIEJAR,       $cookie);
curl_setopt($ch, CURLOPT_COOKIEFILE,      $cookie);

curl_setopt ($ch, CURLOPT_POST, 1); 
curl_setopt ($ch,CURLOPT_POSTFIELDS,"user_name=user&user_password=pass&passcode=code");     

$result = curl_exec($ch);

/* //OPTIONAL - Redirect to another page after login
$url = "http://aftabcurrency.com/some_other_page";
curl_setopt ($ch, CURLOPT_POST, 0); 
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch);
 */ //end OPTIONAL 

curl_close($ch); 
echo $result;

关于php - 使用安全登录抓取网站内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11171713/

相关文章:

php - 使用 PHP curl 和 CSRF token 登录

haskell - "curl libraries?"在哪里

php - curl 到短信提供商循环通过数据库

python - 从网站上的表中解析数据,其中零条目输入为 "-"

Javascript 代码拒绝在 PHP 之前加载

php - Laravel 如何在使用 tinker CLI 时查找和显示 Eloquent 模型上的动态属性?

php - AH01630 : client denied by server configuration for files named dhtxxxx. xxx

php - DateTime 类与原生 PHP 日期函数

python - Scrapy Xpath 构造在动态站点上生成空括号

python - 当第一个链接旁边包含特定关键字时无法获取第二个链接