❶ 如何使用PHP服务端代理抓取网页内容
可以呀。
用snoopy的类,网上有snoopy.class.php,你自行网络查找。
snoopy的类可以设置$proxy_host参数,设置代理主机,$proxy_port是代理主机端口。你下载一个下来,网上的教程很多,看看应该明白。
至于调用proxy.txt,轮换ip的问题,我觉得可用代理不是很多的话,可以设置成随机选择代理就好了。你采集的那个网站记录的是你代理服务器的ip
❷ 用php的Snoopy如何抓取网页的验证码呢
curl就可以了
<?php
header('Content-Type:image/png');
$url="图片链接";//图片链接
$ch=curl_init();
//Cookie:PHPSESSID=
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_COOKIE,'这里是你的内cookies');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,0);
curl_setopt($ch,CURLOPT_TIMEOUT,0);//忽略超时容
curl_setopt($ch,CURLOPT_NOBODY,false);
$str=curl_exec($ch);
curl_close($ch);
❸ PHP跨站请求
有很多方法
1、自己做包,实际上就是用文件函数一行行地写,摸拟post提交;
2、一般函数通讯,curl
3、用snoopy的类。这是目前用得最多的。
我来举个例子给你:
< ?php
include "Snoopy.class.php";
$snoopy = new Snoopy;
$submit_url = "http://www.phpx.com/happy/logging.php?action=login";
$submit_vars["loginmode"] = "normal";
$submit_vars["styleid"] = "1";
$submit_vars["cookietime"] = "315360000";
$submit_vars["loginfield"] = "username";
$submit_vars["username"] = "********"; //你的用户名
$submit_vars["password"] = "*******"; //你的密码
$submit_vars["questionid"] = "0";
$submit_vars["answer"] = "";
$submit_vars["loginsubmit"] = "提 交";
$snoopy->submit($submit_url,$submit_vars);
print $snoopy->results;
?>
详细出处参考:http://www.jb51.net/article/14181.htm
❹ Snoopy采集,thinkphp使用snoopy采集数据
呵呵。这种情况,看看是不是程序那里有错误了吧。
一般情况不会出现这么大内存需版求的。权
另外,如果你开启的是snoopy的多线程测试,可以考虑把线程数量减少。
还有就是循环执行时间,也可以适当减少再试试。
❺ 如何用PHP程序,模拟“在网页搜索页面输入关键词并搜索”的动作,然后将搜索结果返回谢谢!
用现成的采集类Snoopy吧,
挺好用的。
到github去看看:
https://github.com/uniqid/Snoopy
下载地址:
https://github.com/uniqid/Snoopy/archive/master.zip
❻ PHP模拟登陆qq空间
PHP代码:
<php
$qq = "100000"; //qq号码
$pwd = "123456"; //密码
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://211.139.167.71/waptest/TWF/qqportal/rela/updateuserinfo.jsp");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //这行是设定curl是否跟随header发送的location, 重要
curl_setopt($ch, CURLOPT_POST, 1);
//curl_setopt($ch, "Connection", "Keep-Alive");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "qq=".$qq."&pwd=".$pwd."&FromWhere=register");
$return = curl_exec($ch);
curl_close($ch);
echo strstr($return, "postfield") ? "登录失败" : "登录成功";
?>
注:1、需curl模块支持,2、登陆后,你的好友将会看到你在线 3、不知道如何下线。
其他语言的实现类似,有兴趣的朋友可以自己动手开发一下。
这个你试试
❼ php获取远程页面问题
有两种办法:
一、使用snoopy类.
snoopy是一个sf上的一个开源项目,用来模仿web浏览器的功能,它能完成获取网页内容和发送表单的任务。
下面是它的一些特征:
1、方便抓取网页的内容
2、方便抓取网页的文字(去掉HTML代码)
3、方便抓取网页的链接
4、支持代理主机
5、支持基本的用户/密码认证模式
6、支持自定义用户agent,referer,cookies和header内容
7、支持浏览器转向,并能控制转向深度
8、能把网页中的链接扩展成高质量的url(默认)
9、方便提交数据并且获取返回值
10、支持跟踪HTML框架(v0.92增加)
11、支持再转向的时候传递cookies
二、使用curl函数,需要安装curl扩展.
curl 是使用URL语法的传送文件工具,支持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。curl 支持SSL证书、HTTP POST、HTTP PUT 、FTP 上传,kerberos、基于HTT格式的上传、代理、cookie、用户+口令证明、文件传送恢复、http代理通道和大量其他有用的技巧。
❽ php 如何将数据Get提交到其他的网站,而且不跳转
最方便的方式是使用一个叫Snoopy的php 类.你可以自己去找个最新版的下载来用
例子:
include_once "./Snoopy.inc.php";
$URL = 'http://www.abc.com/app.php?var=value&a=aaa'; //这里就可以提交GET了.
$snoopy = new Snoopy();
$snoopy->fetch($URL); //获取GET后返回的内容.
echo $snoopy->results; //输出来看看.
Snoopy 类除了GET还有POST等HTTP方式.
❾ PHP使用代理方法获取远程网页的代码.
functioncurl_string($url,$user_agent,$proxy){
$ch=curl_init();
curl_setopt($ch,CURLOPT_PROXY,$proxy);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_USERAGENT,$user_agent);
curl_setopt($ch,CURLOPT_COOKIEJAR,"c:cookie.txt");
curl_setopt($ch,CURLOPT_HEADER,1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_TIMEOUT,120);
$result=curl_exec($ch);
curl_close($ch);
return$result;
}
$url_page="http://www..com";
$user_agent="Mozilla/4.0";
$proxy="http://192.11.222.124:8000";//这里是代理
$string=curl_string($url_page,$user_agent,$proxy);
echo$string;