PHP实现curl和snoopy类模拟登陆方法

Snoopy.class.php下载

方法/步骤

  1. 第一种:使用snoopy类实现模拟登陆

    1.在网上下载一个Snoopy.class.php的文件

  2.  

    2.代码实现:

    <?php
    
    set_time_limit(0);
    
    require "Snoopy.class.php";
    
    $snoopy=new Snoopy();
    
    $snoopy->referer=‘你要模拟登陆的域名‘;//例如:http://www.baidu.com/
    
    $snoopy->agent="定义浏览器根";
    
    $post[‘username‘] =‘登陆账号‘;//根据你要模拟登陆的网站具体的传值 名称来定
    
    $post[‘password‘] =‘登陆密码‘;//根据你要模拟登陆的网站具体的传值 名称来定
    
    $url=‘你要模拟登陆的域名,数据提交地址‘;//登陆数据提交的URL地址
    
    $snoopy->submit($url,$post);
    
    $snoopy->fetch("你要模拟登陆的域名");//希望获取的页面数据
    
    echo $snoopy->results;//输出结果,登陆成功
  3.  

    第二种:使用curl函数模拟登陆

    1.代码实现:储存COOKIE

    <?php
    
    set_time_limit(0);
    
    $cookie_file=tempnam(‘./tmp‘,‘cookie‘);//tmp目录首先创建好,设置COOKIE文件
    
    $curl=curl_init();
    
    $login_url=‘你要模拟登陆的域名,数据提交地址‘;
    
    $curlPost="usename=登陆账号&password=登陆密码";//根据你要模拟登陆的网站具体的传值 名称来定
    
    curl_setopt($ch,CURLOPT_URL,$login_url);
    
    //启用时会将头文件的信息作为数据流输出
    
    curl_setopt($curl,CURLOPT_HEADER,0); //设定是否输出页面内容
    
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
    
    curl_setopt($curl,CURLOPT_POST,1); //设置请求发送方式,post或get,CURLOPT_POST或CURLOPT_GET
    
    curl_setopt($curl,CURLOPT_POSTFIELDS,$curlPost);
    
    curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie_file); //保存cookie
    
    curl_exec($curl);//执行
    
    curl_close($curl);//关闭
  4.  

    //2.实现模拟登陆

    $curl=curl_init();
    
    $login_url2="你要模拟登陆的域名";
    
    curl_setopt($curl,CURLOPT_URL,$login_url2);//提交登陆的url
    
    curl_setopt($curl,CURLOPT_HEADER,0); 
    
    curl_setopt($curl,CURLOPT_RETURNTRANSFER,0);
    
    curl_setopt($curl,CURLOPT_COOKIEFILE,$cookie_file); //读取cookie
    
    curl_exec($curl);//执行
    
    curl_close($curl);//关闭
时间: 2024-08-05 19:32:37

PHP实现curl和snoopy类模拟登陆方法的相关文章

Python爬虫者的福音!一个神库,汇总了数十个主流网站的模拟登陆方法

网络上有形形×××的网站,不同类型的网站爬虫策略不同,难易程度也不一样.从是否需要登陆这方面来说,一些简单网站不需要登陆就可以爬,比如之前爬过的猫眼电影.东方财富网等.有一些网站需要先登陆才能爬,比如知乎.微信等.这类网站在模拟登陆时需要处理验证码.js 加密参数这些问题,爬取难度会大很多.费很大力气登陆进去后才能爬取想要的内容,很花时间. 是不是一定要自己动手去实现每一个网站的模拟登陆方法呢,从效率上来讲,其实大可不必,已经有前人替我们造好轮子了. 最近发现一个神库,汇总了数十个主流网站的模拟

使用Snoopy进行模拟登陆、采集

Snoopy是一个使用PHP写的采集类,使用了一下发现功能比较强大,几乎可以模拟浏览器的所有行为,可以实现的功能有: 比起使用curl,fsockopen等函数来说方便很多,下面总结一下这个类一些属性与方法的作用. 方法: fetch($url) 该方法用于抓取网页内容,类似于file_get_contents     submit($posturl,$params,$files) 该方法提交表单数据,第二个参数是一个一维数组,例如array('user'=>'zhangsan','pwd'=>

Python模拟登陆:模拟登陆电子科大信息门户测试

最近在学习Python的网络操作,网上有很多模拟登陆方法.这里做个笔记. 没有验证码的还是比较容易的. #coding:utf-8 import re import urllib import urllib2 import cookielib import os import json import sys import time from urllib import quote,unquote from urllib2 import HTTPError from urllib2 import

php curl模拟登陆抓取数据

最近由于项目的需要,需要做数据抓取,也就是用的curl相关的函数库,在这之前还真心没有接触过这么高大上的东西,然后从刚开始到今天才研究curl算是第四天了,写这篇博客记录一下这几天的一个过程,在使用curl模拟登陆抓取数据过程中需要注意的一些事项,以及介绍一款支持跨平台(windows.linux.mac)的抓包软件 charles(这个软件是收费的,但是你不花钱也可以使用) ,想要尽快上手,必须要去熟悉两个东西:http协议.curl的相关参数选项的作用 一.介绍curl 这是curl的维基百

php中通过curl模拟登陆discuz论坛的实现代码

libcurl同时也支持HTTPS认证.HTTP POST.HTTP PUT. FTP 上传(这个也能通过PHP的FTP扩展完成).HTTP 基于表单的上传.代理.cookies和用户名+密码的认证. php的curl真的是相当好用,网上一搜索相关文章都是关于curl模拟登陆的,很少人提供模拟discuz发贴的源码 <?php $discuz_url = 'http://www.lai18.com/';//论坛地址 $login_url = $discuz_url .'login.php?act

php爬虫(curl) 模拟登陆获取cookie,然后使用cookie查看个人中心

<!-- curl的高级使用 --> <?php //模拟登陆获取cookie保存到电脑 header("content-Type: text/html; charset=UTF-8"); /*$cookie_file = tempnam('d:/', 'cookie');*/ $cookie_file = 'd:/demo.txt'; $login_url="http://www.php-z.com/member.php?mod=logging&a

PHP CURL模拟登陆

通过CURL模拟登录并获取数据,一些网站需要权限认证,必须登录网站后,才能有效地抓取网页并采集内容,这就需要curl来设置cookie完成模拟登录网页,php的curl在抓取网页内容方面效率是比较高的,而且支持多线程,而file_get_contents()效率就要稍低些. 模拟登录的代码如下所示: <?php/* 函数login_post(),需要提供一个url地址,一个保存cookie文件,以及post的数据(用户名和密码等信息),注意php自带的http_build_query()函数可以

php模拟登陆的两种实现方法分析

php模拟登陆的实现方法分析 本文实例分析了php模拟登陆的实现方法.分享给大家供大家参考.具体分析如下: php模拟登陆的实现方法,这里分别列举两种方法实现模拟登陆人人网.具体实例代码如下: 1)使用snoopy模拟登陆: [php] view plaincopy<?php set_time_limit(0); require "Snoopy.class.php"; $snoopy=new Snoopy(); $snoopy->referer='http://www.la

微信公众账户模拟登陆后的一系列操作

<?php header("content-type:text/html;charset=utf-8"); /** * wx_mass * * 完成微信公众账户模拟登陆后的一系列操作 * mass($content) 调用微信群发接口,群发文本信息 * getUserList($page,$pagesize,$group) 获取用户信息 * * 群发demo * * $user=array('account'=>'公众账户名称','password'=>'密码');