❶ 如何使用PHP服务端代理抓取网页内容
可以呀。 用snoopy的类,网上有snoopy.class.php,你自行网络查找。snoopy的类可以设置$proxy_host参数,设置代理主机,$proxy_port是代理主机端口。你下载一个下来,网上的教程很多,看看应该明白。 至于调用proxy.txt,轮换ip的问题,我觉得可用代理不是很多的话,可以设置成随机选择代理就好了。你采集的那个网站记录的是你代理服务器的ip
❷ 用php的Snoopy如何抓取网页的验证码呢
curl就可以了
<?phpheader('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、一般函数通讯,curl3、用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;