php -- php模拟浏览器访问网址
目前我所了解到的在php后台中,用php模拟浏览器访问网址的方法有两种:
第一种:模拟GET请求:file_get_contents($url)
通过php内置的 file_get_contents 函数可以模拟浏览器访问网址的行为,取的结果就是那个网址所返回的所有东西(这种情况一般用于返回的是 xml 格式字符串或者 json 字符串)
第二种:模拟GET/POST请求:curl
curl 是 php 提供的内置函数,其功能非常强大,封装常用的http,soap,ftp等协议
微信主要通过其进行模拟POST请求
1)初始化curl
2)设置参数
3)执行curl
4)关闭句柄
示例代码:
1、初始化 $ch = curl_init()
2、设置参数 curl_setopt($ch,参数)
3、执行 curl_exec($ch)
4、关闭 curl_close($ch)
5、输出错误信息:curl_error($ch)
第2步设置时,常用参数
CURLOPT_URL 请求url CURLOPT_RETURNTANSFER(1)捕获url响应信息,不输出 CURLOPT_HEADER(0或1) 设置请求头信息 CURLOPT_POST(1) 设置是否使用POST请求,1开启 CURLOPT_POSTFIELDS 设置传输的数据,数组
例子:
微信机器人:小黄鸡
<?php
header('Content-type:text/html;charset=utf-8');
$url = "http://www.xiaohuangji.com/ajax.php";
//1、初始化curl
$ch = curl_init();
//2、设置参数,参数1初始化$ch,参数2设置常量,参数3常量的值
//设置请求url网址
curl_setopt($ch,CURLOPT_URL,$url);
//捕获url响应信息不输出
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
//设置请求头信息
curl_setopt($ch,CURLOPT_HEADER,0);
//设置传输post数组
$data = array(
'para'=>'你是男的还是女的'
);
//设置开启POST请求
curl_setopt($ch,CURLOPT_POST,1);
//传输参数值
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
//3、执行curl
$output = curl_exec($ch);
//4、关闭句柄
curl_close($ch);
if($output === False) {
echo 'error:'.curl_error($ch);
}
echo $output;
?>
php -- php模拟浏览器访问网址的更多相关文章
- 第14.7节 Python模拟浏览器访问实现http报文体压缩传输
一. 引言 在<第14.6节 Python模拟浏览器访问网页的实现代码>介绍了使用urllib包的request模块访问网页的方法.但上节特别说明http报文头Accept-Encodin ...
- Selenium 3 + BrowserMobProxy 2.1.4 模拟浏览器访问 (含趟坑)
背景 Selenium 是一个Web自动化测试的组件,可基于WebDriver去控制弹出浏览器去做一系列Web点击或行为测试(当然也可以去做一些邪恶的事..),减少重复人工网页测试的开销.Browse ...
- 第14.6节 使用Python urllib.request模拟浏览器访问网页的实现代码
Python要访问一个网页并读取网页内容非常简单,在利用<第14.5节 利用浏览器获取的http信息构造Python网页访问的http请求头>的方法构建了请求http报文的请求头情况下,使 ...
- HttpWebRequest 模拟浏览器访问网站
最近抓网页时报错: 要么返回 The remote server returned an error: (442)要么返回: 非法访问,您的行为已被WAF系统记录! 想了想,就当是人家加了抓网页的东西 ...
- Java网络编程(模拟浏览器访问Tomcat服务器)
程序运行结果: HTTP/1.1 404 Not FoundServer: Apache-Coyote/1.1Content-Type: text/html;charset=utf-8Content- ...
- java 实现模拟浏览器 访问网站
一般的情况下我们都是使用IE或者Navigator浏览器来访问一个WEB服务器,用来浏览页面查看信息或者提交一些数据等等.所访问的这些页面 有的仅仅是一些普通的页面,有的需要用户登录后方可使用,或者需 ...
- Android 隐式意图 让用户选择一个浏览器访问网址
Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(Uri.parse("h ...
- 黄聪:wordpress如何携带cookie模拟浏览器访问网站
$args = array( 'user-agent' => 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, li ...
- python 模拟浏览器
想用python模拟浏览器访问web的方法测试些东西,有哪几种方法呢? 一类:单纯的访问web,不解析其js,css等. 1. urllib2 #-*- coding:utf-8 -* import ...
随机推荐
- Vue.js使用-组件(下篇)
上一节,我们定义了组件的基本使用,下面我们看看组件其他的一些特性. 1.组件作用域 同时在Vue对象和组件中定义一个属性,显示结果是怎样的呢? <!DOCTYPE html> <ht ...
- 每日英语:Boost Your Balance; Avoid Falls
If you find yourself needing to sit down to take off your shoes, it might be time to start paying at ...
- package.json中配置浏览器
"browserlist":[ ">=1%", "last 2 versions" ],
- C# 去除json字符串key引号
采用正则表达式去除: 方法 /// <summary> /// 去除json key双引号 /// </summary> /// <param name="js ...
- UDP服务器
用c#开发的一个UDP服务器.可以接收UDP的连接请求.给予响应. 代码已经上传至 GitHub,功能还会不断完善. 界面很丑.我很奇怪的是很少(到现在为止,我都没有见到过),所以界面一直做的不够酷炫 ...
- JAVA-JSP内置对象之request获得封装所有参数值的Map
相关资料:<21天学通Java Web开发> 获得封装所有参数值的Map1.通过request对象的getParameterMap()方法来获得封装所有的参数值的Map对象.2.通过该Ma ...
- Mapreduce 进阶
场景描述 订单需要封装成为一个bean 传入reduce,然后实现排序取出top1,或者分组求和 首先要实现排序就要实现comparable接口 要实现分组top1,那么"相同的bean&q ...
- Java编程的逻辑 (70) - 原子变量和CAS
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...
- kafka生产消费原理笔记
一.什么是kafka Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性 ...
- linux下shellcode提取常用到的命令
汇编语言的汇编指令: nasm -f elf xxx.asm 生成xxx.o文件 ld -o xxx xxx.o 生成可执行文件,不用加参数-s ,否则在提取shellcode的十六进制码的 ...