利用php的curl扩展进行模拟浏览器访问网页

我们一般要抓取一个网站的静态页面来完成我们的需求,其实在这里面有很多种方式可以完成,

php内置函数file_get_contents();file();readfile();都可以进行网页抓取,但是这种方式毕竟是有很大

局限性的,例如我们要访问一个需要登录的网站,需要登录验证信息,这是后php内置函数就显得疲软了

所以我们发现了一个php的扩展类curl来帮助我们完成这种事情,curl是php的扩展之一我们只需要安装它

并且在php.ini文件中打开他的扩展就可以使用了,这里我们不多赘述,其实curl使用起来还是蛮简单的下面

我们给出一个简单的demo:

<?php
$url = "www.baidu.com";//以百度为例
$data = array();
$curl = curl_init();//初始化一个curl会话;

curl_setopt($curl,CURLOPT_URL,$url);//指定访问的url

curl_setopt($curl,CURLOPT_POST,$data);//post请求的参数,

curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//获取的信息以文件流的方式返回

$data = curl_exec($curl);//执行curl;
var_dump($data);
curl_close($curl); // 关闭CURL会话

?>

这就完成了一次curl会话,大家感觉是不是没什么特别之处?,别急,我们来看看他的精髓之处就是可以传参数,当然什么cookies呀!验证的这些东西就可以通过这个来完成,

curl参数很多这里就不一一介绍了;

另外推荐大家去看一看snoopy抓取类也是不错的一个工具,simple_html_dom文档解析也很不错。

时间: 2024-11-09 10:14:00

利用php的curl扩展进行模拟浏览器访问网页的相关文章

php -- php模拟浏览器访问网址

目前我所了解到的在php后台中,用php模拟浏览器访问网址的方法有两种: 第一种:file_get_contents($url) 通过php内置的 file_get_contents 函数可以模拟浏览器访问网址的行为,取的结果就是那个网址所返回的所有东西(这种情况一般用于返回的是 xml 格式字符串或者 json 字符串) 第二种:curl curl 是 php 提供的内置函数,其功能非常强大,封装常用的http,soap,ftp等协议 微信主要通过其进行模拟POST请求 1)初始化curl 2

java程序模拟浏览器访问Web服务器的处理过程

import java.net.*; import java.io.*; /* * 演示浏览器访问Web服务器的处理过程 */ public class WebServerDemo { public static void main(String[] args)throws IOException{ ServerSocket ss=new ServerSocket(10000); Socket s=ss.accept(); byte[] bytes=new byte[1024]; int len

python爬虫模拟浏览器访问-User-Agent

模拟浏览器访问-User-Agent: import urllib2 #User-Agent 模拟浏览器访问 headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"} #通过urllib2.Request()方法构造一个请求对象 request

CURL PHP模拟浏览器get和post

模拟浏览器get和post数据需要经常用到的类, 在这里收藏了几个不错的方法 方法一 <?php define ( 'IS_PROXY', true ); //是否启用代理 /* cookie文件 */ $cookie_file = dirname ( __FILE__ ) . "/cookie_" . md5 ( basename ( __FILE__ ) ) . ".txt"; // 设置Cookie文件保存路径及文件名 /*模拟浏览器*/ $user_a

Python模拟浏览器实现网页访问

模拟浏览器请求数据: import socket # 创建TCP链接 tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # DNS 解析和链接HTTP服务器 tcp_socket.connect(("www.qq.com", 80)) # 编写请求头, 发送HTTP请求报文 # 请求行 request_line = "GET / HTTP/1.1\r\n" # 请求头,设置请求域名 requ

windows下不打开浏览器访问网页的方法

我们打开电脑,大多时候都是打开浏览器在上网.这都是通过浏览器来实现的,然而windows下有没有办法不通过浏览器也可以像linux那样达到访问网页的目的呢?这当然少不了批处理或者VBScript.然而无论是bat还是vbs都免不了要调用浏览器,关闭浏览器,这都不是我想要的.那么windows下会不会也有curl的用法呢?于是网上查找了一通,发现了这样一篇文章windows下安装和调用curl的方法.这完全就是linux下curl的用法,好了这就是我要的. 于是有了以下这段bat脚本原型 @ech

手机端微信扫描二维码直接打开外部浏览器访问网页的解决办法

想必大家会经常碰到网页链接在微信内无法打开和微信内无法打开app下载页的情况.通常这种情况微信会给个提示 “已停止访问该网址” ,那么导致这个情况的因素有哪些呢,主要有以下四点 1.网页链接被举报次数过多.2.网页含违规内容,含敏感词.3.被腾讯检测系统判断为诱导分享内容.4.转发分享次数达上限 那么上述问题怎么办呢?只要我们实现微信跳转浏览器的功能即可,下面给大家介绍下这个功能的实现方法. 功能目的 生成微信跳转链接,实现微信内置浏览器跳转外部浏览器打开网页. 操作步骤 第一步:打开 Elep

Mindjump-微信跳转浏览器功能源码,实现微信内自动跳转手机浏览器访问网页url

源码使用场景:1.用来实现微信自动跳转外部浏览器下载app2.用来实现微信内打开网页链接自动跳转浏览器访问指定页面3.防止网页链接由于被微信拦截,导致用户无法正常在微信内打开 源码说明: 适用安卓和苹果系统,支持任何网页链接.并且无论链接是否已经被微信拦截,均可实现微信内自动跳转浏览器打开. 生成的跳转链接具有极佳的防拦截效果. 源码体验: 1.复制分享链接(app下载页链接或网页链接),然后在浏览器(电脑和手机上都可以)中打开我们需要用到的 Mindjump 平台:http://www.min

php通过curl扩展进行模拟登录(含验证码)

以下为本人工作中遇到的需要做的事情,之前也没怎么用过curl,查了好多资料,才稍微弄明白一点:本文所有内容只是自己平日工作的记录,仅供大家参考: <?php/*** 模拟登录*/header("Content-type: text/html; charset=UTF-8");//初始化变量$cookie_file = "valid.tmp";$login_url = "http://v3.gds.org.cn/login.aspx";$ve