关于PHP正则提取网页信息
发布网友
发布时间:2022-04-19 20:44
我来回答
共3个回答
热心网友
时间:2023-07-02 16:36
用 int preg_match( string pattern, string subject [, array matches ] ) 来处理,实现过程我就不写了,没有验环境,下面说下思路。
用$str读入采集结果,preg_match_all("/<[^>]+.+>/", $str,$split_word)分割采集结果,得到数组$split_word,结果应该是这样子的:
$split_word[0]="<li><table><tr>"
$split_word[1]=" <td width="574"><a href="detailnew.jsp?id=803088">驻村干部</a></td>"
……
然后逐个对数组元素进行查找,首先循环查找条件1 id号:
preg_match("/id=\d+/i",$split_word[n],$id_value)
匹配的结果是数组$id_value,类似$id_value[0]="id=xxxxx",如果你要提取纯数字,还要再对这个结果提取一次。
其余字段提取仿照上面操作,对应的正则表达式:
链接标题先提取/<a[^>]+>\w+<\/a>/i, 然后再从结果中提取< /[x80-xff>]{4,}/i (即匹配四个汉字以上,汉字GBK/GB2312编码是:[x80-xff>],UTF-8编码:[x{4e00}-x{9fa5}]+/u,这一点要注意)
……
思路就是这样,比较烦人,没有下一子能就匹配所有信息的正则表达式。
热心网友
时间:2023-07-02 16:36
preg_match_all("/href=\"detailnew.+?id=(.+?)\">(.+?)<\/a>.+?href=\".+?c=(.+?)&d=(.+?)\">(.+?)<\/a>/s", $html, $find); //$html是你采集的内容
for($i=0; $i<count($find[1]); $i++){
$arr_id[] = array($find[1][$i], $find[2][$i]);
$arr_c[] = $find[3][$i];
$arr_d[] = array($find[4][$i], $find[5][$i]);
}
print_r($arr_id);
echo '<br/><br/>';
print_r($arr_c);
echo '<br/><br/>';
print_r($arr_d);
热心网友
时间:2023-07-02 16:36
答案:
$str = ’‘; //你的内容;
preg_match_all('|detailnew.jsp\?id=(.*)">(.*)</a>.*&c=(.*)&d=(.*)">(.*)</a>.*<td width="97">(.*)<|isU',$str,$main);
$id_array = $main[1];
$id_link_txt_array = $main[2];
$c_array = $main[3];
$d_array = $main[4];
$c_d_link_txt_array = $main[5];
$date_array = $main[6];
php正则表达来获取html中的部分内容
(4)preg_split -- 用正则表达式分割字符串 2. 一般来说,如果用正则来获取匹配内容,一般使用 preg_match/ preg_match_all 函数。补充回答:正则表达式如下:'%功能(.*?)%si'以下是代码,经测试,运行正常:<?php str = '功能这里面是要获取的内容,不能确定什么字符,可能是数字(123456…)字...
php正则表达式提取网页数据(无数据是用-表示的),/(\d+)\.(\d+)/is...
是要获取 所有 XXXXXXXXXXX里面的 数值 ,还是 这个页面 里面 的所有数值?str =<<<DEO 客胜 22.90 290.74 -</
PHP抓取网页指定内容
抓取网页内容用 PHP 的正则 用JS每隔5分钟刷新当前页面---即重新获取网页内容 注: $mode中---更改为所需内容(如 $mode = "#<a(.*)#";>获取所有链接)window.location.href="http://localhost/baidu/refesh.php";中的http://localhost/baidu/refesh.php 更改为自己的URL---作用:即刷新当...
PHP如何正则表达式提取网页内容
如果你要和之间的所有源码,用 preg_match 就可以,不用preg_match_all ,如果你要里面的所有的 标签中的内容,可以用preg_match_all //提取所有代码 pattern = '/(.+?)/is';preg_match($pattern, $string, $match);//$match[0] 即为和之间的所有源码 echo $match[0];//然后再提取之间...
php 获取网页的全部URL 的正则如何写(解决后我追加50分)
<?php url = 'xxxxx';//要提取的网页地址 content = file_get_contents($url);preg_match_all("/<a ([^<]*?)<\/a>/i",$content,$links);print_r($links);//$links是匹配后的结果 ?>
php如何获取网址中的参数
用正则可以这样 preg_match('/id=(\d+)/',$_SERVER["REQUEST_URI"],$m);//$_SERVER 这个表示当前网址url print_r($m[1]);exit;或者用parse_url()及parse_str()函数 cur_q=parse_url($_SERVER["REQUEST_URI"],PHP_URL_QUERY);parse_str($cur_q,$myArray);print_r($myArray["id...
php正则提取页面body和body之间的内容
/(.*?)<\/body>/is .*?最小匹配,如果去掉?号,则默认是贪婪匹配 而前面加了?:则表示.*?所匹配的结果不会保存在缓冲区内
php正则提取网页表格内容,并插入mysql数据库,请问我的代码哪里有问题...
1.上面是$contents,下面怎么用$content[$i]呢 2.preg_match_all匹配到的东西在第三个参数$match里面,是数组。可以用var_dump($match);看看是否匹配到东东了。
PHP获取网站中的信息并存入数据库
用PHP自带函数就可以实现,首先要过去对方的网页信息,用 file_get_contents();参数是对方的URL地址,这个函数返回是一个字符串你想要的东西就在这个字符串中了 接下来就可以针对这个字符串做处理了,说下思路,正如你这个问题想获取到航班号起飞时间,在这个网页中应该有很多相同的标签元素,它们都有共同...
正则表达式 提取 html 标签的内容
string str = File.ReadAllText("D:\\1.txt", Encoding.Default);str = Regex.Match(str, @"(?is)(?<=>)[^<>]+(?=<)").Value;Console.WriteLine(str);