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 ...
随机推荐
- (原) ubuntu下用pycharm2016.1专业版配docker编译环境(docker Interpreter)
一:先创建docker-machine 先创建docker machine.我主机上的虚拟机是virtualbox.$ docker-machine create --driver virtualbo ...
- 添加Fragment报已有父view,需先移除的错
错误LOG: 12-13 17:05:28.754: E/AndroidRuntime(8344): FATAL EXCEPTION: main 12-13 17:05:28.754: E/Andro ...
- LeetCode: Add Two Numbers 解题报告
Add Two NumbersYou are given two linked lists representing two non-negative numbers. The digits are ...
- Django import / export实现数据库导入导出
使用django-import-export库,导入导出数据,支持csv.xls.json.html等格式 官网:http://django-import-export.readthedocs.io/ ...
- 如何通过Dreamweaver批量对整个站点或目录进行代码搜索或部分全部替换
原文地址:http://www.idc523.com/faq/view-331.html 如何通过Dreamweaver批量对整个站点或目录进行代码搜索或部分全部替换 有的时候,我们希望修改网站代码或 ...
- Mac OS X下的移动光标和文字编辑快捷键
移动光标快捷键 Control-F 光标前进一个字符,相当于右键(F = Forward) Control-B 光标后退一个字符,相当于左键(B = Backward) Control-P 上移一行, ...
- volatile关键字学习
volatile关键字在实际工作中我用的比较少,可能因为我并不是造轮子的.但是用的少不是你不掌握的借口,还是要创造场景去使用这个关键字,本文将会提供丰富的demo. volatile 发音:英[ˈvɒ ...
- CreateMutex和WaitForSingleObject组合的有关问题
CreateMutex和WaitForSingleObject组合的问题在网上看见一个dll的代码,其中有这样几行 case DLL_PROCESS_ATTACH: ........ hmut ...
- error TRK0002: Microsoft Visual Studio 10.0\VC\bin\link.exe Access is denied.
When you compile project, visual studio 2010 prompts “…link.exe … Access is denied” This below is I ...
- Lucene整理--索引的建立
看lucene主页(http://lucene.apache.org/)上眼下lucene已经到4.9.0版本号了, 參考学习的书是依照2.1版本号解说的,写的代码样例是用的3.0.2版本号的,版本号 ...