正则抓取百度搜索结果
来源:互联网 发布:cps联盟系统源码 编辑:程序博客网 时间:2024/04/27 12:59
<?php
//手机百度搜索
$key
=
"电脑"
;
$url
=
'http://m.baidu.com/s?word='
.
$key
;
$result
=
file_get_contents
(
$url
);
$pattern
=
'#class="resitem".*?<a.*?href="(.*?)".*?>(.*?)</a>#si'
;
preg_match_all(
$pattern
,
$result
,
$matches
);
echo
'<pre>'
;
print_r(
$matches
[1]);
print_r(
$matches
[2]);
//PC百度搜索
$key
=
"电脑"
;
$url
=
'http://www.baidu.com/s?word='
.
$key
;
$result
=
file_get_contents
(
$url
);
$pattern
=
'#class="result.*?class="t".*?<a.*?href="(.*?)".*?>(.*?)</a>#si'
;
preg_match_all(
$pattern
,
$result
,
$matches
);
echo
'<pre>'
;
print_r(
$matches
[1]);
print_r(
$matches
[2]);
//说明:(分析PC版)
//正则匹配首先要分析HTML结构,锁定循环部分,<table id="?" class="result...></table>
//然后取得最简锚点,class="result(这里没有后面的",因为存在class="result-op"这种)
//接下来再对循环内部进行取锚点,class="result...<a...href="..."...>...</a>
//而在整个result中可能存在多种<a.*?href="(.*?)".*? >(.*?)</a>这样的格式,
//因此找到依赖class="t",得到class="result...class="t"...<a...href="..."...>...</a>
//过滤掉其他部分,留下我们想要的内容。
//正则中间的.*?就是用来屏蔽无关内容(...部分),这部分内容对于我们的结果不会造成影响
//而我们需要的链接(href="【...】")和标题(<a..>【...】</a>)则可以使用子模式,
//从而可以在匹配结果中顺序取出,子模式是加括号。
//最后替换...成.*?,需要获取数据的加上括号(),则得到正则表达式:
//'#class="result.*?class="t".*?<a.*?href="(.*?)".*[问号]>(.*?)</a>#si'
//注:? > 注释时连在一起写会语法错误,使用时请将[问号]换回来
//End_php
0 0
- 正则抓取百度搜索结果
- 抓取百度搜索结果
- java正则表达式的使用-抓取百度搜索的结果
- python抓取百度搜索结果
- 使用HtmlUnit抓取百度搜索结果
- Python抓取百度图片搜索的结果
- PHP多进程抓取百度搜索结果
- PHP多进程抓取百度搜索结果
- 抓取百度搜索结果——解密百度狗
- 如何抓取谷歌,百度里面特定的搜索结果
- 分别使用Python和Java抓取百度搜索结果
- 抓取百度查询结果
- 抓取百度查询结果
- 抓取 google 搜索结果
- PHP抓取百度搜索结果对应的第一个百度快照的链接
- 百度搜索结果爬虫
- python抓取google搜索结果
- C#抓取百度和谷歌的搜索结果(标题和链接) 代码整理
- Java中JNI的使用详解第四篇:C/C++中创建Java对象和String字符串对象及对字符串的操作方法
- Objective-C 关于静态方法与实例方法的转载
- OpenStack开发环境搭建
- 成为 Linux 终端高手的七种武器
- 如何下载linux公社的免费资源
- 正则抓取百度搜索结果
- c#编程小结(拖延症发作,慢慢更新)
- 移动互联网对工作和生活的负面影响
- 处于时代中心的各大软件企业却令人沮丧
- Hibernate事务与并发问题处理(乐观锁与悲观锁)
- 开发者日常使用的 Git 命令
- android VPN编程
- 新技术的窘境
- 创建索引