php curl 自界说get措施抓取网页

假定我们应用get措施请求一个网页,取得网页内容后可以婚配出对应的内容。

我们可以应用curl封装一个函数,假定函数名就为get。传入url便可以请求指定的网页,将指定网页的HTML代码前往回来。代码以下:

function get($url) {
    //初使化curl
    $ch = curl_init();
    //请求的url,由形参传入
    curl_setopt($ch, CURLOPT_URL, $url);
    //将取得的数据前往
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    //不处置赏罚赏罚头信息
    curl_setopt($ch, CURLOPT_HEADER, 0);
    //毗连逾越10秒超时
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    //推行curl
    $output = curl_exec($ch);
    //关闭资源
    curl_close($ch);
    //前往内容
    return $output;
}

我们现在应用我们所写的get措施,请求网易的一个列表,将效果和url抓取出来。

华夏棋牌我们可以先用get措施中传入一个URL。取得这个网址所对应网页的html。

网址为新媒体不雅不雅察网的新闻列表页:http://www.xmtnews.com/events 。

将白色区域搜集上去:

1.png

一、取得采白色区间的html 

华夏棋牌这个区间从下面的HTML代码泉源:

<section class="ov">

在以下代码阻拦:

<div class="hr-10"></div>

华夏棋牌应用preg_match写一个正则表达示就婚配就取得了白色区间的HTML。将婚配到的HTML赋值给变量$area。

华夏棋牌婚配的正则表达示以下:

<section class="ov">(.*?)<div class="hr-10"><\/div>/mis'

2、在白色区域婚配效果和效果标URL

我们发现一切的效果都在<h3>标签外面。我们应用preg_match_all写一个正则表达示。

preg_match_all('/<h3><a href="(.*?)" title=".*?" class="headers" target="_blank">(.*?)<\/a><\/h3>/mis', $area, $find);

华夏棋牌将url和内容婚配出来的内容放置到$find中,将$find数组,打印出来便可以看到婚配的效果了。

华夏棋牌假定须要,也能够或许循环读取显示每行效果和每行URL。

一切代码演示以下:

<?php

$content = get('http://www.xmtnews.com/events');

preg_match('/<section class="ov">(.*?)<div class="hr-10"><\/div>/mis', $content, $match);

//将正则婚配到的内容赋值给$area
$area = $match[1];

preg_match_all('/<h3><a href="(.*?)" title=".*?" class="headers" target="_blank">(.*?)<\/a><\/h3>/', $area, $find);


var_dump($find);

function get($url) {

   //初使化curl
   $ch = curl_init();

   //请求的url,由形参传入
   curl_setopt($ch, CURLOPT_URL, $url);

   //将取得的数据前往
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

   //不处置赏罚赏罚头信息
   curl_setopt($ch, CURLOPT_HEADER, 0);

   //毗连逾越10秒超时
   curl_setopt($ch, CURLOPT_TIMEOUT, 10);

   //推行curl
   $output = curl_exec($ch);

   //关闭资源
   curl_close($ch);

   //前往内容
   return $output;
}
?>


一连学习
||
<?php $content = get('http://www.xmtnews.com/events'); preg_match('/<section class="ov">(.*?)<div class="hr-10"><\/div>/mis', $content, $match); //将正则婚配到的内容赋值给$area $area = $match[1]; preg_match_all('/<h3><a href="(.*?)" title=".*?" class="headers" target="_blank">(.*?)<\/a><\/h3>/', $area, $find); var_dump($find); function get($url) { //初使化curl $ch = curl_init(); //请求的url,由形参传入 curl_setopt($ch, CURLOPT_URL, $url); //将取得的数据前往 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //不处置赏罚赏罚头信息 curl_setopt($ch, CURLOPT_HEADER, 0); //毗连逾越10秒超时 curl_setopt($ch, CURLOPT_TIMEOUT, 10); //推行curl $output = curl_exec($ch); //关闭资源 curl_close($ch); //前往内容 return $output; } ?>
提交重置代码
章节
条记
提问
课件
反映
捐赠

php入门教程之一周学会PHP

  • 推荐课程
  • 议论
  • 问答
  • 条记
  • 课件下载

wolf

在浏览器中汉字乱码处置赏罚赏罚措施,header('content-type:text/html;charset=utf-8');复制到<? php前面.即<? php header('content-type:text/html;charset=utf-8');

9个月前    添加回复 1

回复

金华郭德纲

华夏棋牌叨教在第一个正则的定界符前面为甚么要加mis?吃紧迫!

3个月前    添加回复 0华夏棋牌

回复

金华郭德纲

年夜家这段代码不要用ie浏览器来看谁人网页的html代码,ie的html和chrome的纷歧样的

3个月前    添加回复 0

回复

金华郭德纲

华夏棋牌为甚么我用edge掀开的f12外面的html代码和这段外面正则表达式表达的纷歧样啊?

3个月前    添加回复 0

回复

y的小公举

自学的艰辛只需自己知道,若何让学习不再艰辛让学习前进效力

12个月前    添加回复 0华夏棋牌

回复

风的季节

mmpmmp

1年前    添加回复 0

回复

/mis是甚么意思华夏棋牌

[最新 猪哥 的回复] 正则表达式的润饰符

时间:1年前

课件暂不供应下载,使命职员正在整理中,前期请多关注该课程~