curl主要是抓取数据,当然我们可以用其他的方法来抓取,比如fsockopen,file_get_contents等。但是只能抓那些能直接访问的页面,如果要抓取有页面访问控制的页面,或者是登录以后的页面就比较困难了。
是把php的主页取回放到一个文件中。
例 1. 使用PHP的CURL模块取回PHP主页
| 代码如下 | 复制代码 |
|
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://localhost/mytest/phpinfo.php"); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //如果把这行注释掉的话,就会直接输出 $result=curl_exec($ch); curl_close($ch); | |
2,使用代理进行抓取
为什么要使用代理进行抓取呢?以google为例吧,如果去抓google的数据,短时间内抓的很频繁的话,你就抓取不到了。google对你的ip地址做限制这个时候,你可以换代理重新抓。
立即学习“PHP免费学习笔记(深入)”;
| 代码如下 | 复制代码 |
|
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.hzhuti.com"); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE); curl_setopt($ch, CURLOPT_PROXY, 125.21.23.6:8080); //url_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');如果要密码的话,加上这个 $result=curl_exec($ch); curl_close($ch); ?> | |
3,post数据后,抓取数据
单独说一下数据提交数据,因为用 curl的时候,很多时候会有数据交互的,所以比较重要的。
| 代码如下 | 复制代码 |
$ch = curl_init(); | |
4,抓取一些有页面访问控制的页面

页面访问控制的3种方法
页面访问控制的3种方法张映 发表于 2010-10-12
分类目录: apache/nginx
我们经常会看到这种现象,看下图
apache 页面访问控制
为什么要进行这样的控制呢,给不同的人看不同的东西,对信息进行保护,虽然这种保护比较低级,多多少少还是有点用的。
一,用htpasswd命令,产生权限控制文件
| 代码如下 | 复制代码 |
查看复制打印? | |
二,页面访问控制方法
1,能过修改httpd.conf或者是httpd-vhosts.conf来进行配置
立即学习“PHP免费学习笔记(深入)”;
| 代码如下 | 复制代码 |
|
listen 10004 ErrorLog "/home/zhangy/apache/blog.51yip.com.com-error.log" | |
2,我们可以利用.htaccess文件来进行控制
在test的根目录下面建一个.htaccess的文件
| 代码如下 | 复制代码 |
[zhangy@BlackGhost test]$ vi .htaccess //打开个文件 ,添加权限内容 | |
3,不用密码文件,也可以进行访问控制
| 代码如下 | 复制代码 |
|
define('ADMIN_USERNAME','tank'); // Admin Username //log check echo <<<EOB | |
curl相关函数列表:
curl_init — 初始化一个CURL会话
curl_setopt — 为CURL调用设置一个选项
curl_exec — 执行一个CURL会话
curl_close — 关闭一个CURL会话
curl_version — 返回当前CURL版本
curl_init — 初始化一个CURL会话
描述
int curl_init ([string url])
curl_init()函数将初始化一个新的会话,返回一个CURL句柄供 curl_setopt(), curl_exec(),和 curl_close() 函数使用。如果可选参数被提供,那么CURLOPT_URL选项将被设置成这个参数的值。你可以使用curl_setopt()函数人工设置。
例 1. 初始化一个新的CURL会话,且取回一个网页
| 代码如下 | 复制代码 |
$ch = curl_init(); | |
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号