php的spider代码和用户dashboard的展现代码,使用

2019-07-13 作者:编程   |   浏览(106)

行使curl在此以前先张开curl配置,具体措施百度时而就理解,开启curl扩大。密码用md5加密,那是由此测量检验成功的,把用户跟密码改成你的就行了。

背景表达:小拽利用php的curl写的爬虫,实验性的爬取了今日头条5w用户的基本音讯;同期,针对爬取的多寡,进行了大约的深入分析显示。

本次完结PHP导出Excel文件使用的是PHP开源程序PHPExcel,部分重视代码分享给我们,具体内容如下

本文实例陈述了PHP完结的oracle分页函数。分享给大家供我们参谋,具体如下:

下边一段代码给大家介绍php使用curl模拟登陆微信公众平台,具体代码如下所示:

php的spider代码和用户dashboard的表今世码,整理后上传github,在私有博客和民众号更新代码库,程序仅供游戏和上学交流;假若有凌犯乐乎相关活动,请尽早联系本人删除。

<?php
error_reporting(E_ALL);
date_default_timezone_set('Asia/Shanghai');
require_once './Classes/PHPExcel.php';
$data=array(
  0=>array(
    'id'=>1001,

    'username'=>'张飞',
    'password'=>'123456',
    'address'=>'三国时高老庄250巷101室'
  ),
  1=>array(
    'id'=>1002,
    'username'=>'关羽',
    'password'=>'123456',
    'address'=>'三国时花果山'
  ),
  2=>array(
    'id'=>1003,
    'username'=>'曹操',
    'password'=>'123456',
    'address'=>'延安西路2055弄3号'
  ),
  3=>array(
    'id'=>1004,
    'username'=>'刘备',
    'password'=>'654321',
    'address'=>'愚园路188号3309室'
  )
);
$objPHPExcel=new PHPExcel();
$objPHPExcel->getProperties()->setCreator('//www.jb51.net')
               ->setLastModifiedBy('//www.jb51.net')
               ->setTitle('Office 2007 XLSX Document')
               ->setSubject('Office 2007 XLSX Document')
               ->setDescription('Document for Office 2007 XLSX, generated using PHP classes.')
               ->setKeywords('office 2007 openxml php')

               ->setCategory('Result file');

$objPHPExcel->setActiveSheetIndex(0)

      ->setCellValue('A1','ID')

      ->setCellValue('B1','用户名')

      ->setCellValue('C1','密码')

      ->setCellValue('D1','地址');

$i=2;     

foreach($data as $k=>$v){

  $objPHPExcel->setActiveSheetIndex(0)
      ->setCellValue('A'.$i,$v['id'])
      ->setCellValue('B'.$i,$v['username'])
      ->setCellValue('C'.$i,$v['password'])
      ->setCellValue('D'.$i,$v['address']);

  $i  ;

}
$objPHPExcel->getActiveSheet()->setTitle('三年级2班');

$objPHPExcel->setActiveSheetIndex(0);
$filename=urlencode('学生信息统计表').'_'.date('Y-m-dHis');

//生成xlsx文件
/*
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$filename.'.xlsx"');
header('Cache-Control: max-age=0');
$objWriter=PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007');
*/

//生成xls文件
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$filename.'.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;

mysql有limit,分页的时候,大家得以用limit 30,40,而oracle未有limit,用别的的不二等秘书诀来代表--rownum.

<?php 
//模拟微信登入 
$cookie_file = tempnam('./temp','cookie'); 
$login_url = 'https://mp.weixin.qq.com/cgi-bin/login'; 
$pwd = md5("********");
$data = "f=json&imgcode=&pwd=$pwd&username=*****@***.com"; 
$ch = curl_init($login_url); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
curl_setopt($ch,CURLOPT_POST,1); 
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false); 
curl_setopt($ch,CURLOPT_REFERER,'https://mp.weixin.qq.com'); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$data); 
$content = curl_exec($ch); 
curl_close($ch); 
$newurl = json_decode($content,1); 
//var_dump($newurl);
//exit;
$newurl = $newurl['redirect_url']; 
//获取登入后页面的源码 
$go_url = 'https://mp.weixin.qq.com'.$newurl; 
$ch = curl_init($go_url); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie_file); 
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,0); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
$content = curl_exec($ch); 
//var_dump(curl_error($ch)); 
print_r($content); 
curl_close($ch); 
?>

无图无真相

留心:要是导出粤语时出现乱码,能够尝试将字符串调换到gb2312,代码类似如下:

一、底层方法

动用 PHP CU牧马人L 模拟登陆和讯今日头条

移动端解析数据截图

翻开代码打字与印刷

/**
 * 数据连接
 */
function connect($db_user, $db_pwd, $db_name, $db_nls)
{
 $this->dbh = oci_connect($db_user, $db_pwd, $db_name, $db_nls);
}
function getall($query, $start=0, $rows=-1)
{
 $this->dbh = emptyempty($this->dbh) ? $this->connect() : $this->dbh;
 $this->sth = oci_parse($this->dbh, $query);
 oci_execute($this->sth, OCI_DEFAULT) or $this->error($this->sth, $query);
 oci_fetch_all($this->sth, $res, $start, $rows, OCI_FETCHSTATEMENT_BY_ROW OCI_ASSOC);
 return $res;
}
/**
* 获取分页数
*
* $query  string   查询语句
* $total  int    总条数
* $page  int    页数
* $rows  int    每页显示数
* @return integer  总行数
*/
function getpage($query, $total, $page, $rows=VAR_PAGENAV_ROWS)
{
 $start_row = ($page - 1) * $rows   1;
 $start_row = $start_row > $total ? 1 : $start_row;
 $end_row  = $start_row   $rows - 1;
 $end_row  = $end_row > $total ? $total : $end_row;
 $query   = "SELECT * FROM ( SELECT ROWNUM as row_num, r.* FROM ( $query ) r WHERE ROWNUM <= $end_row ) WHERE $start_row <= row_num";
 return $this->getall($query);
}
/**
* 获取一个查询的总行数
*
* $string $sql 查询语句
*
* return integer 总行数
*/
function getcount($sql){
 $subSQL = 'select count(*) '.stristr($sql, 'from');
 return $this->getone($subSQL);
}
function getone($query)
{
 $row = $this->getrow($query);
 if (is_array($row))
 $one = current($row);
 else
 $one = '';
 unset($row);
 return $one;
}
function getrow($query)
{
 if (false === stripos($query, 'COUNT(')) {
 if (false === stripos($query, 'WHERE')) {
 $query .= ' WHERE ROWNUM = 1';
 } else {
 $query .= ' AND ROWNUM = 1';
 }
 }
 $result = $this->getall($query, 0, 1);
 if (emptyempty($result))
 $row = array();
 else
 $row = $result[0];
 unset($result);
 return $row;
}

临时候大家收获一些和讯今日头条的数码,但又不想行使API,只能利用模拟登入了.

小鱼儿玄机30码 1

$str=mb_convert_encoding("gb2312","UTF-8",$str);

小鱼儿玄机30码,尤为重要一个点子本人写一些表明

发觉原先能够行使的CU福睿斯L模拟登陆代码失效了,谷歌(Google)一下,开掘有许多人遇上这几个难点.不过并未找到消除方法,所以就协和查商量究了一晃,发现了原因.

pc端剖析数据截图

以上就是本文的全体内容,希望对大家的学习抱有扶助。

二、调用方法

兴许是因为果壳网限制了不容许模拟登入,一样的登入参数,用网页登入一切平常,用CU奇骏L登陆,重返的主管KIES竟然是不经常的.

小鱼儿玄机30码 2

你恐怕感兴趣的文章:

  • 全盘化解phpexcel导出到xls文件出现乱码的主题素材
  • PHP完毕导出excel数据的类库用法示例
  • PHP导出带样式的Excel示例代码
  • PHP使用PHPexcel导入导出数据的艺术
  • PHP导入导出Excel代码
  • php原生导出excel文件的二种艺术(推荐)
$total = $this->db->getcount($sql);
$result = $this->db->getpage($sql,$total,$page,$page_number);

从而看起来是登入成功了,而且赢得到了用户消息,可是再一次访问依旧未登陆状态.小编的消除方法比较轻松,直接更动主管KIES的时效那样就行了.

全体爬取,剖析,表现进程大概分如下几步,小拽将分别介绍

下面只是贴出部分代码,也是最宗旨的。

附上本身要好测验通过的PHP代码如下,希望有对有同样题指标对象有用,假如您有越来越好的方案迎接分享一下.

  1. curl爬取天涯论坛网页数据
  2. 正则解析天涯论坛网页数据
  3. 数量数据入库和次序计划
  4. 多少深入分析和表现

越来越多关于PHP数据库操作相关内容感兴趣的读者可查看本站专项论题:《php常见数据库操作能力汇总》、《PHP基于pdo操作数据库手艺总计》及《php mysql数据库操作入门教程》。

发觉只要不安装CU奥德赛LOPT_首席实践官KIESESSION参数就行了,无需修改COOKIE_FILE.

curl爬取网页数据

希望本文所述对大家PHP程序设计具有支持。

<?php
class sina
{
/*
一个简单的新浪微搏curl模拟登录类. 来源: http://chenall.net/post/sina_curl_login/
使用方法:
http函数是一个简单的curl封装函数,需要自己去实现,
http函数原型如下:
http($url,$post_data = null)
返回网页内容.
第一个参数$url,就是要访问的url地址,$post_data是post数据,如果为空,则代表GET访问.
1.使用加密后密码登录 加密方法: sha1(sha1($pass))
$sina = new sina($username,$sha1pass)
2.直接使用原始密码登录
$sina = new sina($username,$sha1pass,0)
执行之后如果$sina->status非空,则登录成功,否则登录失败.
登录成功之后,你就可以直接继续使用http函数来访问其它内容.
使用 unset($sina) 会自动注销登录.
*/
public $status;
function __construct($su,$sp,$flags = 1) {
$this->status = $this->login($su,$sp,$flags);
}
function __destruct()
{
//注销登录
$this->logout();
}
function logout()
{
http("http://weibo.com/logout.php");
unset($this->status);
}
/*不需要了,只要不设置HTTP函数中不设置CURLOPT_COOKIESESSION参数就行了,要设可以设为false.
function ResetCookie()//重置相关cookie
{
global $cookie_file;
$str = file_get_contents($cookie_file);
$t = time() 3600;//设置cookie有效时间一个小时
$str = preg_replace("/t0t/", "t".$t."t", $str);
$f = fopen($cookie_file,"w");
fwrite($f,$str);
fclose($f);
}
*/
function login($su,$sp,$flags = 0)
{
$su = urlencode(base64_encode($su));
$data = http("http://login.sina.com.cn/sso/prelogin.php?entry=miniblog&client=ssologin.js&user=".$su);
if (empty($data))
return null;
//$data = substr($data,35,-1);
$data = json_decode($data);
if ($data->retcode != 0)
return null;
if ($flags == 0)
$sp = sha1(sha1($sp));
$sp .= strval($data->servertime).$data->nonce;
$sp = sha1($sp);
$data = "url=http://weibo.com/ajaxlogin.php?&returntype=META&ssosimplelogin=1&su=".$su.'&service=miniblog&servertime='.$data->servertime."&nonce=".$data->nonce.'&pwencode=wsse&sp='.$sp;
$data = http("http://login.sina.com.cn/sso/login.php?client=ssologin.js",$data);
//$this->ResetCookie();
if (preg_match("/location.replace('(.*)')/",$data,$url))
{
$data = http($url[1]);
//$this->ResetCookie();
$data = json_decode(substr($data,1,-2));
if ($data->result == true)
return $data->userinfo;
}
return null;
}
}
?>

PHP的curl扩展是PHP协助的,允许你与种种服务器使用各连串型的情商举行接二连三和通信的库。是四个要命轻易的抓取网页的工具,同期,帮助多线程扩大。

您只怕感兴趣的篇章:

  • Linux下安装oracle客户端并安插php5.3
  • CentOS下PHP安装Oracle扩展
  • PHP下的Oracle客户端扩大(OCI8)安装教程
  • Linux下PHP连接Oracle数据库
  • Win7 61人系统下PHP连接Oracle数据库
  • windwos下利用php连接oracle数据库的进度分享
  • PHP5.3连接Oracle客户端及PDO_OCI模块的安装方式

本文由小鱼儿玄机30码发布于编程,转载请注明出处:php的spider代码和用户dashboard的展现代码,使用

关键词: 小鱼儿玄机30码