php 爬取网页几种常用方法

PHP爬虫如何抓取网页表格数据 阅读详情

主要流程就是获取整个网页,然后正则匹配(关键的)。

PHP抓取页面的主要方法,有几种方法是网上前辈的经验,现在还没有用到的,先存下来以后试试。

  1. file()函数

  2. file_get_contents()函数

  3. fopen()->fread()->fclose()模式

  4. curl方式 

  5. fsockopen()函数 socket模式

  6. 插件(如:http://sourceforge.net/projects/snoopy/)

  7. file()函数

<?php
//定义url
$url='http://t.qq.com/';//fiel函数读取内容数组
$lines_array=file($url);//拆分数组为字符串
$lines_string=implode('',$lines_array);//输出内容
echo $lines_string; 

2.使用file_get_contents方法实现,比较简单。


使用file_get_contents和fopen必须空间开启allow_url_fopen。方法:编辑php.ini,设置 allow_url_fopen = On,allow_url_fopen关闭时fopen和file_get_contents都不能打开远程文件。

$url="http://news.sina.com.cn/c/nd/2016-10-23/doc-ifxwztru6951143.shtml";
$html=file_get_contents($url);
//如果出现中文乱码使用下面代码`
//$getcontent = iconv("gb2312", "utf-8",$html);
echo"<textarea style='width:800px;height:600px;'>".$html."</textarea>";

  3、fopen()->fread()->fclose()模式 ,目前还没用过,看到了就先记下了

<?php
//定义url
$url='http://t.qq.com/';//fopen以二进制方式打开 
$handle=fopen($url,"rb");//变量初始化
$lines_string="";//循环读取数据
do{
$data=fread($handle,1024);   
if(strlen($data)==0) {`
break; 
}  
$lines_string.=$data;
}while(true);//关闭fopen句柄,释放资源
fclose($handle);//输出内容
echo $lines_string;

 

4.使用curl实现


使用curl必须空间开启curl。方法:windows下修改php.ini,将extension=php_curl.dll前面的分号去掉,而且需 要拷贝ssleay32.dll和libeay32.dll到C:\WINDOWS\system32下;Linux下要安装curl扩展。

<?php
header("Content-Type: text/html;charset=utf-8");
date_default_timezone_set('PRC');
$url = "https://***********ycare";//要爬取的网址
$res = curl_get_contents($url);//curl封装方法
preg_match_all('/<script>(.*?)<\/script>/',$res,$arr_all);//这个网页中数据通过js包过来,所以直接抓js就可以
preg_match_all('/"id"\:"(.*?)",/',$arr_all[1][1],$arr1);//从js块中匹配要的数据
$list = array_unique($arr1[1]);//(可省)保证不重复
//以下则是同理,循环则可
for($i=0;$i<=6;$i=$i+2){
    $detail_url = 'ht*****em/'.$list[$i];
    $detail_res = curl_get_contents($detail_url);
    preg_match_all('/<script>(.*?)<\/script>/',$detail_res,$arr_detail);
    preg_match('/"desc"\:"(.*?)",/',$arr_detail[1][1],$arr_content);
    ***
        ***
        ***
    $ret=curl_post('http://**********cms.php',$result);//此脚本未放在服务器上,原因大家懂就好哈。
}
function curl_get_contents($url,$cookie='',$referer='',$timeout=300,$ishead=0) {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION,1);
    curl_setopt($curl, CURLOPT_URL,$url);
    curl_setopt($curl, CURLOPT_TIMEOUT,$timeout);
    curl_setopt($curl, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36');
    if($cookie)
    {
        curl_setopt( $curl, CURLOPT_COOKIE,$cookie);
    }
    if($referer)
    {
        curl_setopt ($curl,CURLOPT_REFERER,$referer);
    }
    $ssl = substr($url, 0, 8) == "https://" ? TRUE : FALSE;
    if ($ssl)
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    }
    $res = curl_exec($curl);
    return $res;
    curl_close($curl);
}
//curl  post数据到服务器
function curl_post($url,$data){
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    //curl_setopt($ch,CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36');
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_POST,true);
    curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
    $output = curl_exec($ch);
    curl_close($ch);
    return $output; 
}
?>

 

5、fsockopen()函数 socket模式(没用过,以后可以试试)


socket模式能否正确执行,也跟服务器的设置有关系,具体可以通过phpinfo查看服务器开启了哪些通信协议

<?php
$fp = fsockopen("t.qq.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: t.qq.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}

 

6、snoopy插件,最新版本是Snoopy-1.2.4.zip Last Update: 2013-05-30,推荐大家使用


使用网上非常流行的snoopy来进行采集,这是一个非常强大的采集插件,并且它的使用非常方便,你也可以在里面设置agent来模拟浏览器信息。
说明:设置agent是在 Snoopy.class.php 文件的第45行,请在该文件中搜索 “var 公式输入有误_SERVER['HTTP_USER_AGENT']; 可以得到浏览器信息,将echo出来的内容复制到agent里面就可以了。

<?php
//引入snoopy的类文件
require('Snoopy.class.php');
//初始化snoopy类
$snoopy=new Snoopy;
$url="http://t.qq.com/";
//开始采集内容`
$snoopy->fetch($url);
//保存采集内容到$lines_string
$lines_string=$snoopy->results;
//输出内容,嘿嘿,大家也可以保存在自己的服务器上
echo $lines_string;

 

爬虫入门(简单网页信息爬取) 文章目录一、概念相关1.爬虫2.需要的包二、爬取南阳理工学院ACM题目1.网站分析2.代码编译3.运行结果三、爬取某知名大学官网通知1.网站分析2.代码编译3.运行结果四、总结参考链接 一、概念相关 1.爬虫 网络爬虫,又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 大部分爬虫都是按“发送请求——获得页面——解析页面——抽取并储存内容”这样的流程来进行,这其实也 阅读详情

相关推荐

python写爬虫之【如何分析网页并使用python爬取网页数据】

本篇把讲解与代码结合,来展示一个小爬虫程序的创建过程。 第1步,确立目标。 爬取北邮人招生网页上,各年份中北邮在不同省份各个专业的招生人数,对应的最高分,最低分和平均分。 第2步,分析网页。 北邮人招生网页的网址是: url = 'https:///zsb.bupt.edu.cn/list/list.php?p=5_52_1' 打开网址后看到的是这样的: 可以看到,每一个年份都...

cyy2learn的博客 1万+

PHP抓取网络数据的6种常见方法

本小节的名称为 fsockopen,curl与file_get_contents,具体是探讨这三种方式进行网络数据输入输出的一些汇总。这里就大概列举这么 6 种抓取网络数据的方式,也是比较常见的,让大家先有个总体的理解,还有各方法的比较。4. 用 fsockopen 函数打开url,以get方式获取完整的数据,包括header和body。5. 用fsockopen函数打开url,以POST方式获取完整的数据,包括header和body。//获取url的html部分,去掉header。

源码客栈的博客 2957

python爬取动态网页_python爬取动态网页数据,详解

原理:动态网页,即用js代码实现动态加载数据,就是可以根据用户的行为,自动访问服务器请求数据,重点就是:请求数据,那么怎么用python获取这个数据了?浏览器请求数据方式:浏览器向服务器的api(例如这样的字符串:http://api.qingyunke.com/api.php?key=free&appid=0&msg=关键词)发送请求,服务器返回json,然后解析该json,就得到请求数据了同理...

weixin_39736047的博客 3735

详细步骤教学:使用PHP进行网页抓取

了解如何从头开始使用 PHP 轻松创建和编写您自己的简单网络抓取工具。 PHP(HyPertext PreProcessor超文本预处理器)是一种用于网络开发的脚本语言,可用于收集网络数据。在这篇文章中,我们将介绍: • 为什么使用PHP • 开始使用 PHP • 通过 3 个简单的步骤使用 PHP 进行网页抓取

WebDataTittat的博客 1929

爬虫入门—网页信息爬取

网络协议抓包分析与爬虫入门一、爬虫简介1.概念2.类型3.使用范围4.合法性5.搜索策略6.基本结构二、环境准备三、爬取南阳理工学院ACM题目网站四、爬取重庆交通大学新闻网站参考 一、爬虫简介 1.概念 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 2.类型 网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫(General Pur

qq_30593663的博客 5225

基于hadoop搜索引擎实践——网页爬取(二)

基于hadoop搜索引起——网页爬取 本系统抓取的是某网站的bbs论坛,具体情况可以根据自己的需求选择。 1.爬取思路     爬取策略是深度优先爬取。算法思想如下:     从网站主页开始,执行如下步骤:     (1)选择一个尚未爬取的频道(比如有社会,人文,娱乐);如果所有频道都已经爬完,算法结束     (2)在已选择的频道中,选择一个尚未爬取的板块(比如有八卦

long1657的专栏 4477

PHP 实现网页爬虫

PHP 实现网页爬虫 方法一:通过fopen和stream_get_contents获取html内容 方法二:使用curl获取html页面内容

qq_41469037的博客 3308

开源php搜索引擎-蜘蛛程序

采用PHP+Mysql的轻量级PHP开源搜索引擎/蜘蛛程序,功能为蜘蛛自动爬行站点,创建关键词及索引,可作为站点搜索或者创建站点的分类搜索。

php网页爬取_用PHP进行网页爬取

php网页爬取 在本文中,我将向您展示如何使用PHP抓取网页。 YouTube上有本教程的视频版本,网址为 https://youtu.be/Uc5mfudMTKE(如果您喜欢以视频​​格式学习)。 我个人喜欢阅读一篇文章,因为它往往会花费更少的时间,因为您可以浏览...选择哪种格式最适合您! 本文假定您对PHP和编程概念有基本的了解,并且可以访问能够运行PHP的服务器。 如果您无权访问能够...

IT与开发人员的地盘 1530

3步搞定专利数据爬取:用Selenium绕过国家知识产权局反爬(附完整代码)

本文详细介绍了3种高效获取专利数据的技术方案,重点解析了使用Selenium绕过国家知识产权局反爬的实战方法,并提供了完整代码示例。文章还探讨了Requests+lxml轻量级方案和混合技术策略,帮助开发者根据需求选择最佳数据爬取方案,特别适合需要专利统计数据的开发者参考。

weixin_29029995的博客 1108

基于STM32和K210的自动驾驶小车设计

自动驾驶技术正在迅速发展,成为了汽车行业和智能交通领域的热点之一。随着科技的发展,STM32和K210这两款芯片为自动驾驶小车提供了优秀的硬件支持。本文我们将学习如何使用STM32和K210打造一个简单的自动驾驶小车。提示:以下是本篇文章正文内容,下面案例可供参考通过这篇文章,掌握了如何使用STM32和K210构建一个简单的自动驾驶小车。通过了解基本的电路设计,并编写了STM32和K210的代码。通过这个例子,可以更好地理解如何在嵌入式系统中使用STM32和K210,以及如何实现自动驾驶小车的简单功能。

Kyle_Chan_zMH的博客 2215

Python动态网页爬取

相比于静态网页,动态网页具有更加丰富和交互性的内容,可以根据用户的需求和交互行为实时生成和更新内容,大大提高了用户的使用体验和网站的互动性。与静态网页相比,动态网页的内容是在用户和服务器之间不断交互和更新的,因此传统的网页爬取方法难以获取到完整的网页内容和数据,需要采用更加高级和复杂的爬虫技术和工具。在爬取动态网页之前,需要先分析网页的结构和数据交互方式。总之,动态网页爬取需要采用更加高级和复杂的爬虫技术和工具,需要对网页结构和数据交互方式进行深入分析,以便采用相应的爬虫方法和技术来获取网页内容和数据。

Kali与编程 5000

基于ADS1299的8通道脑电采集系统硬件设计实战

生物电信号采集是医疗电子与可穿戴设备中的关键环节,微弱信号的高保真放大与数字化处理直接影响系统性能。高精度模数转换器与低噪声模拟前端设计成为工程实践的核心。ADS1299作为专用生物电测量芯片,集成多通道低噪声放大器与24位Δ-Σ ADC,广泛应用于脑电、心电等生理信号检测。本文基于ADS1299构建8通道脑电采集系统,详细阐述硬件架构、电源与参考设计、输入保护、PCB布局布线、固件SPI配置及数据读取,并结合实测数据分享噪声抑制与调试经验,为EEG采集设备开发提供完整参考。

weixin_29169505的博客 222

PHP爬取网页的主要方法,你掌握了吗

这篇文章讲的是PHP爬取网页的主要方法,主要流程就是获取整个网页,然后正则匹配(关键的)。 PHP抓取页面的主要方法,有几种方法是网上前辈的经验,现在还没有用到的,先存下来以后试试。 file()函数 file_get_contents()函数 fopen()->fread()->fclose()模式 curl方式 (本人主要用这个) fsockopen()函数 socket模式 插件(如:http://sourceforge.net/projects/snoopy/) 不要走开,接下来.

weixin_49163826的博客 675

Multi-Agent

Multi-Agent System(MAS,多代理系统)是分布式人工智能(DAI)领域皇冠上的明珠,其核心思想是通过多个自主、交互、目标导向的智能体(Agent)的协同与竞争,解决单智能体无法或难以高效处理的复杂问题——包括大规模资源调度、多模态数据理解与决策、复杂软件架构的自治运维、甚至未来城市级的交通与能源管理。本文将以结构化分析推理和第一性原理思考。

AI智能探索者的博客 407

使用Mask2Former和X-Decoder训练自定义数据集及结果复现报告

本报告记录了使用MMDetection框架中的Mask2Former和X-Decoder模型在自定义数据集上的训练过程。报告包含环境配置、数据集准备、模型训练与优化(解决了Mask2Former的PQ值异常问题)、性能评估等关键环节。详细展示了从数据集转换(将客户提供的COCO格式数据适配MMDetection框架)、配置文件修改、到最终模型训练和评估的全流程。特别针对Mask2Former训练中的PQ值异常问题提供了解决方案,并对比了两种模型在自定义数据集上的表现。报告还包含完整的代码实现和技术细节。

huanghm88的专栏 1089

使用PHP进行网页爬取

在本文中,我将向您展示如何使用PHP抓取网页。 如果您更喜欢以视频​​格式学习,则YouTube上有本教程的视频版本, 网址为https://youtu.be/Uc5mfudMTKE 。 我个人喜欢阅读一篇文章,因为它往往会花费更少的时间,因为您可以浏览...选择哪种格式最适合您! 本文假定您对PHP和编程概念有基本的了解,并且可以访问能够运行PHP的服务器。 如果您无权访问能够运行PHP的服...

IT与开发人员的地盘 1575

GEE 案例:基于陆地卫星8号(大气层顶反射率数据)LANDSAT/LC08/C02/T1_TOA的生态遥感指数RSEI计算、可视化和下载

摘要:基于GEE的遥感生态指数(RSEI)计算方法 本文介绍了利用Google Earth Engine(GEE)平台计算遥感生态指数(RSEI)的全流程方法。主要内容包括:研究区域定义、Landsat8数据获取与去云预处理、关键生态指标计算(地表温度LST、植被指数NDVI、湿度指数WET和建筑指数NDBSI)、主成分分析(PCA)降维处理,以及结果可视化与数据导出。通过结合多源遥感指标并采用归一化处理,构建了综合反映区域生态环境质量的RSEI指数。该方法为生态环境监测提供了高效的技术方案,所有计算过程均

此星光明博客 429

爬取网页数据php,详细介绍PHP+JavaScript如何爬取网页内容

本篇文章给大家分享的内容是详细介绍PHP+JavaScript如何爬取网页内容,有着一定的参考价值,有需要的朋友可以参考一下php+js爬取网页内容—–先看下效果如何做到的呢?我们一直以为只有Python才能爬取网页内容,那是因为Python本身集合很多类库用来爬取网页很方便,但是我们使用PHP+js的方法一样很方便,一样可以拿到我们想要的网页内容,而且也不用很繁琐。首先我们需要PHP来模拟请求获...

weixin_35578748的博客 461

【数据集】CMIP6气候模式数据下载

简介CMIP6及其气候模式数据下载

WW、forever的博客 9352

个人量化系统的策略集合与赚钱之道:全栈深度解析 + 与主流开源框架对比

前三篇把系统的"骨架"拆完了——架构、工程化、部署。本篇回答最关键的问题:一句话:别人的系统是"程序员的系统"(写代码才能加策略),daily_stock_analysis 是"股民的 YAML"(写中文就能加策略)。这个差异决定了它能在多大程度上真的帮你赚钱。如果你用过 、、,加一个策略的流程是: 问题在哪?在 daily_stock_analysis 里,“策略” = 一个文件。每个 YAML 是一个自然语言描述的交易策略,包括: 看到没? ——整个策略就是一段中文,零代码。任何会写字的人都能加新策略

shiter编写程序的艺术 151

如何使用PHP开发爬虫功能去爬取网页资讯

你见过使用PHP做爬虫吗?没有的话快来看看吧,这肯定是一次不一样的尝试

huidaoli 4654

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

python爬取网页的方法总结,python爬取网页数据步骤

大家好,给大家分享一下利用python爬取简单网页数据步骤,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!本文已收录至Github,推荐阅读 👉本文是根据视频教程记录的学习笔记,建议结合视频观看。先看后赞,养成习惯。讲解我们的爬虫之前,先概述关于爬虫的简单概念(毕竟是零基础教程)

2301_81895949的博客 1096

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

python爬取网页数据步骤,python爬取网页详细教程

大家好,本文将围绕利用python爬取简单网页数据步骤展开说明,怎么用python爬取网站上的数据是一个很多人都想弄明白的事情,想搞清楚python爬取网页数据步骤图解需要先了解以下几个事情。本文已收录至Github,推荐阅读 👉本文是根据视频教程记录的学习笔记,建议结合视频观看。先看后赞,养成习惯。讲解我们的爬虫之前,先概述关于爬虫的简单概念(毕竟是零基础教程)

www55597的博客 1012

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

爬虫 python 爬取php的网页,带有post参数的网页如何爬取

记录一下自己的爬虫踩过的坑,上一次倒是写了一些,但是写得不够清楚,这次,写清楚爬取的过程。 这个网站是某省的志愿服务网。 就是它了。 我向爬取一些组织开展过的活动,比如这一个组织, 这个组织的页面找打它不存在什么问题,组织的网址只需要拼接就可以了。 看似很容易。 基础网址是:https://sd.zhiyuanyun.com/app/org/view.php?id=(*****) 前面是一堆,后面只需要把id后面的组织的ID放进去就可以,组织的ID也很好找。就是直接从首页...

weixin_40340586的博客 4833
上一篇: 网址二维码API接口
下一篇: php CURL
阿……莫西林
博客等级 码龄9年 42粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值