通过安全登录网站ex(Curl)php抓取数据

问题描述 投票:1回答:1

我有一个问题,我需要学习如何访问安全的登录表单,这样我才能获取其中的数据。我对此很陌生,我想用Curl进行处理,然后用simple_html_domregex抓取数据。如下面的代码所示,它是usernamepassword的简单形式。我的问题是,如何在不编写Curl admin和username 123页的情况下使用password和任何其他表单访问该表单?我知道我必须使用CURLOPT_RETURNTRANSFERCURLOPT_SSL..etc,而且我也知道刮取网站永远不会使用相同的代码,每个网站都有不同的选项,您需要使用CURLOPT_...进行管理,但我不知道其结构。我需要什么,从哪里开始。


代码

<body>
<center>
    <form method="post">
        <label>Username</label>
            <input name="user" type="text">
        <label>Password</label>
            <input name="pass" type="password">
        <button type="submit">Submit</button>
    </form>
</center>


</body>
<html>

<?php

$name="";
$password = "";

if(!empty($_POST['user']) && !empty($_POST['pass'])){
    $name = $_POST['user'];
    $password = $_POST['pass'];
}

if($name == "admin" && $password == "123"){
    $url = "https://stackoverflow.com/";
    $html = file_get_html($url);

    foreach ($html->find('a') as $values){
        echo $values->href."<br>";
    }
}   else{
    echo "Error";
}

[您在上面看到了这段代码:首先,它不能在if statement内部进行解析,但是可以,但是我的问题是我该如何使用curl访问安全表单,然后发布抓取的数据?这样的形式无处不在。如果有人知道如何引导我或告诉我会很好。谢谢您的时间

php curl web-scraping libcurl access
1个回答
0
投票

当然,您不必访问表单,如果您想对多个随机网站进行自动操作,则必须使用正则表达式来查找登录表单。

[如果您已经确定要登录一个网站,则可以使用CURL并发送POST请求,(请查看stackoverflow PHP + curl, HTTP POST sample code中已打开的问题)。如果网站表单在表单中使用“令牌”来保护“ csrf”,则您的代码必须找到该令牌,然后将其添加到POST请求字段中并发出请求。

[我推荐您guzzlehttp/guzzle,如果您不使用作曲器,只需从githubrequire /includesrc/Client.php下载它并编写代码。请在这里查看POST/Form request documentationform_params。花时间阅读文档并编写好的代码。祝你好运

© www.soinside.com 2019 - 2024. All rights reserved.