php 抓取网页信息

            最近要抓取网页数据,就用php试了下,发现了一个不错的php抓取数据的集成类simple_html_dom.php,

而根据网页的特点大致分为两类,一类是网页dom结构相同,url类似只是改了部分参数,这个

直接用$html =file_get_html($url); 然后根据网页dom用$html->find()->plaintext来获取数据,

第二类是网页dom结构相同,只是url不能直接访问到,这就需要在其前一个页面找到该页面的url和要传入的数据,

然后用curl 模拟提交,$str=$this->https_post($url,$data);   $html =str_get_html($str);之后处理的方法是一样的,


    当然这种方法只能抓取少量的数据,三四千个页面还算处理的过来,一旦数据上万,就不行了,太费时间了,

不知道php是否有更好方法去抓取数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要通过 PHP 模拟登录并获取 Cookie 信息,您需要使用 CURL 库来发送 HTTP 请求并处理响应。以下是一个基本的示例: ```php $username = "your_username"; $password = "your_password"; // 登录页面 URL $login_url = "https://example.com/login.php"; // 设置 CURL 选项 $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $login_url); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, "username=$username&password=$password"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); // 发送登录请求并获取响应 $response = curl_exec($curl); // 获取 Cookie 信息 preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $response, $matches); $cookies = array(); foreach($matches[1] as $item) { parse_str($item, $cookie); $cookies = array_merge($cookies, $cookie); } // 输出 Cookie 信息 print_r($cookies); // 关闭 CURL curl_close($curl); ``` 在上面的代码中,您需要将 `$username` 和 `$password` 替换为您的用户名和密码,将 `$login_url` 替换为登录页面的 URL。然后,使用 CURL 发送 POST 请求,将用户名和密码作为参数传递。设置 `CURLOPT_RETURNTRANSFER` 选项以获取响应内容,设置 `CURLOPT_FOLLOWLOCATION` 选项以跟随重定向。最后,使用正则表达式从响应头中提取 Cookie 信息,并将其存储在 `$cookies` 数组中。最后,您可以使用 `print_r()` 函数输出 Cookie 信息。 请注意,上面的示例仅适用于基本的 HTTP 认证,如果您的网站使用了更复杂的认证方式(如 OAuth、JWT 等),则需要进行更高级的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值