http://bbs.csdn.net/wap/topics/390938327

正则表达式匹配Html标签

查找所有的TD区域(最短):
<td\s*.*>\s*.*<\/td>

查找所有的TR:
<tr.*(?=>)(.|\n)*?</tr>

查找所有的TD:
<td.*(?=>)(.|\n)*?</td>

正则表达式匹配Html标签

例1.
以下是一段Html代码
<table boder="0" width="11%" class="somestory">
<tr>
<td width="100%">
<p align="center">其它内容...</p>
</td>
</tr>
</table>
<table border="0" width="11%" class="headline">
<tr>
<td width="100%">
<p align="center">典经HTML正则表达式!</p>
</td>
</tr>
</table>
<table boder="0" width="11%" class="someotherstory">
<tr>
<td width="100%">
<p align="center">其它内容...</p>
</td>
</tr>
</table>

正则表过式:<table.*(?=headline)
说明:正则表达式匹配表格开始标记,能够返回开始标记直至 “headline”之间的所有内容(换行除外);
就是以上红色标示出来的部分。
原理:
<table                           //匹配的开始部分
.*                                   //除换行外的所有字符
(?=headline)               //零宽度正预测先行断言,匹配以 headline 结尾的单词的前面部分(除了 headline 以外的部分)

例2.
<table boder="0" width="11%" class="somestory">
<tr>
<td width="100%">
<p align="center">其它内容...</p>
</td>
</tr>
</table>
<table border="0" width="11%" class="headline">
<tr>
<td width="100%">
<p align="center">典经HTML正则表达式!</p>
</td>
</tr>
</table>
<table boder="0" width="11%" class="someotherstory">
<tr>
<td width="100%">
<p align="center">其它内容...</p>
</td>
</tr>
</table>

正则表达式:<table.*(?=headline)(.|\n)*?</table>
说明:匹配最长的以 <table border="0" width="11%" class=" 开始, 以</table>结束的字符串,就是以上以红色标示出来的

部分。

原理:
<table.*(?=headline)                  //参见记录1的说明
(.|\n)                                             //指示在两个或多个项之间进行选择,(zlf)ood 与 "zood" 或 "food" 匹配
*?                                                //应与上一个 (.|\n) 联合起来看,  .*? 就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复,懒惰模式。
</table>                                     //匹配的结束标记

注意:“(.|\n)”后面的 "*" 匹配 0 个到多个任意字符,而“?”使得“*”匹配范围最小化,即在找到表达式的下一部分之前匹配尽可能少的字符。</table> 是表格的结束标记.

例3.
<tableboder="0" width="11%" class="somestory">
<tr>
<td width="100%">
<p align="center">其它内容...</p>
</td>
</tr>
</table>
<tableborder="0" width="11%" class="headline">
<tr>
<td width="100%">
<p align="center">典经HTML正则表达式!</p>
</td>
</tr>
</table>
<tableboder="0" width="11%" class="someotherstory">
<tr>
<td width="100%">
<p align="center">其它内容...</p>
</td>
</tr>
</table>

正则表达式:<(?<tag>[^\s>]+)[^>]*>(.|\n)*?</\k<tag>>
说明:匹配成对的HTML标签,它将会匹配Html标签及标签中的内容,本例分三段匹配三个<table>标签及</table>中的内容。
原理:
                                   //html标签中的 <
(?<tag>[^\s>]+)            // (?<name>), 分组命名的方式,[^\s>]:非任何空白字符及“>”至少匹配一次
[^>]*>                            //非“>”匹配 0 到 n 次,及html的标签“>”.
(.|\n)                              //在两个或多个项之间时行选择,(zlf)ood 与 "zood" 或 "food" 匹配.
*?                                  // 应与上一个(.|\n)联合起来看, .*? 就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复,懒惰模式。
</\k<tag>>                    //反向引用命名的组,语法为 \k<name>, 及html 标签“>”

注意:“(.|\n)”后面的 "*" 匹配 0 个到多个任意字符,而“?”使得“*”匹配范围最小化,即在找到表达式的下一部分之前匹配尽可能少的字符。
本例使用了分组命名及反向引用命名组的概念。

正则表达匹配中文
匹配中文字符的正则表达式:   [\u4e00-\u9fa5]
1、先用js把中文转换16进制码:d.innerHTML = escape("你们"); 得到 %u4F60%u4EEC, 即 \u4F60\u4EEC

2、var arr = str.match(/\u4F60\u4EEC/g);

3、\u4F60为单个汉字“你”.

4、以上测试程序为javascript

转载于:https://www.cnblogs.com/as3lib/p/6834055.html

使用php的curl根据关键词爬取百度搜索结果页相关推荐

  1. 【JavaWeb 爬虫】Java文本查重网页版 爬取百度搜索结果页全部链接内容

    ! ! 更新:增加了网页过滤判断,只允许域名包含blog,jianshu的网站通过 小技巧 Java中InputStream和String之间的转换方法 String result = new Buf ...

  2. (已解决)关键词爬取百度搜索结果,返回百度安全验证,网络不给力,请稍后重试,无法请求到正确数据的问题(2023最新)

    已解决,使用关键词进行百度搜索,然后爬取搜索结果,请求数据后,返回的是百度安全验证,网络不给力,请稍后重试.无法请求到正确数据.且尝试在header中增加Accept参数还是不行. 一.问题产生的现象 ...

  3. Python依据单个关键词爬取百度图片

    最近由于工作需要要使用大量的水果蔬菜图片,故萌生使用爬虫抓取百度图片的想法,并未用于商业用途,只是为了测试数据.所以并未使用多线程.框架等技术. 由于百度图片是动态加载的,发现搜索关键词后action ...

  4. python3.7 根据关键词 爬取百度图片并下载到本地

    URL地址:http://image.baidu.com/search/flip?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1 ...

  5. 使用python和PyQt5编写爬取百度图片的界面工具

    使用python和PyQt5编写爬取百度图片的界面工具 本篇文章的主要内容是展示我个人编写的,以界面小工具的方式爬取百度上面的图片,功能很单一,根据关键词爬取图片,代码很简单,新手上路请多指教. 代码 ...

  6. Laravel中curl_multi并发爬取百度关键词排名

    Laravel中curl_multi并发爬取百度关键词排名 框架使用的Laravel Linux中crontab定时任务添加 */1 * * * * /data/wwwroot/default/new ...

  7. php爬取百度相关关键词,PHP实现抓取百度搜索结果页面【相关搜索词】并存储到txt文件示例...

    本文实例讲述了PHP实现抓取百度搜索结果页面[相关搜索词]并存储到txt文件.分享给大家供大家参考,具体如下: 一.百度搜索关键词[脚本之家] [脚本之家]搜索链接 https://www.baidu ...

  8. Python 爬虫实例(1)—— 爬取百度图片

    爬取百度图片  在Python 2.7上运行 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author: loveNightimport json ...

  9. 爬取百度知道分类_百度指数爬虫|介绍篇

    简单介绍 前段时间帮别人写了几个爬虫,其中有一个是爬取百度指数.绝大多数人应该都知道这个东西,我在这里再说明一下哈! 百度指数是百度提供的可以查看人们每天搜索关键词的次数的功能,具体长下面这个样子: ...

  10. HttpClient 实现爬取百度搜索结果(自动翻页)

    如果你对HttpClient还不是很了解,建议先移步我的另一篇博客HttpClient4.x之请求示例后再来看这篇博客.我们这里的项目采用maven搭建.在阅读前要对jdk和maven有一定的了解.另 ...

最新文章

  1. 2020这一年,我完成了这几件大事
  2. 转、转、转——陀螺的梦话
  3. 图解支付宝钱包技术架构
  4. SAP 没有QM02权限的情况下如何为一个质量通知单单据上传附件?
  5. 有哪些专业学python_学习python有哪些好书和学习方法?
  6. 5分钟内搞定 Tomcat 的 SSL 配置
  7. 1-1 什么是微信小程序
  8. VTK:几何对象之OpenVRCylinder
  9. 中国大学MOOC 计算机组成原理第4章 测试(下)
  10. 【测试点4】基础实验4-2.8 部落 (25 分)
  11. mysql json函数_Mysql里的JSON系列操作函数
  12. 基于Flex的迷你工作流的设计与实现(序)
  13. 地摊经济:78岁高龄老人摆地摊的背后,蕴藏着9000万老年再就业市场的巨大商机
  14. python 二项分布
  15. 论文写作 之 Introduction
  16. 固态加装机械计算机不显示,win10不显示机械硬盘怎么办_win10加装机械硬盘不显示的解决方法...
  17. 新税码不显示或者税码被人隐藏,发票校验不显示
  18. 人工智能情感分析源码,垃圾短信邮箱分析
  19. app应用下的公司名称错误
  20. cocos2dx不同版本间的变化

热门文章

  1. RUP---统一软件开发过程
  2. Lesson_8 上课笔记 ----继承
  3. memcpy、strcpy、snprintf的区别
  4. 前端基础学习之CSS样式
  5. node -v 突然显示 killed 9 处理历程
  6. 形象解释 undefined 和 null 之间的区别 ​
  7. 教你正确设置CrossOver的Wine配置(三)
  8. SDNU 1170.津津的储蓄计划
  9. 一个有很多QT免费应用例程的网站
  10. [Android Pro] 内容提供者ContentProvider的基本使用