爬虫总结 && 部分正则匹配
2017-06-04 16:36
393 查看
今天在整理本地资料时,挖掘出了早几年因工作需要用到爬虫的一些备注,分享下,如果能帮到一部分人,荣幸之至
~
工作流大致是:
首先利用多线程,能过http协议连接对方网站,获取html字符串,可以用java.net包里的工具类或者其它开源包。
接着通过正则表达式解析html标记,网上资源很多的可以搜一下也可以用开源包。
这样一个基本的爬虫就实现了,剩下来的问题就是如何防止重复爬取网页,如何防止爬取其它链接资源,还有抓取目录的
可以去google搜索,很多的。 关键字 htmlparser ,httpclient 爬虫层级。
google: baidu:
java html解析器
//匹配url
知道正则表达式中匹配汉字用:
知道用\d匹配数字,\w匹配单词,\n换行……,可用什么匹配双引号呢"
正则表达式 双引号
匹配标题:
对于html代码是:
正则(反斜杠):
对于html代码是:
正则(反斜杠):
对于html代码是:
正则(反斜杠):
html代码是:
年龄:</td>
\u5e74\u9f84\uff1a</td>
适合年龄:</td><td width="631" bgcolor="#FFFFFF"><span title="0-1岁">
对于html代码是:
正则(反斜杠):
java正则(斜杠):
\u5e74\u9f84\uff1a.*?\u0022([^\u0022>]*)
love.*?you
年龄:50个字符第一个引号,
~
工作流大致是:
首先利用多线程,能过http协议连接对方网站,获取html字符串,可以用java.net包里的工具类或者其它开源包。
接着通过正则表达式解析html标记,网上资源很多的可以搜一下也可以用开源包。
这样一个基本的爬虫就实现了,剩下来的问题就是如何防止重复爬取网页,如何防止爬取其它链接资源,还有抓取目录的
可以去google搜索,很多的。 关键字 htmlparser ,httpclient 爬虫层级。
google: baidu:
java html解析器
//匹配url
//匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$
知道正则表达式中匹配汉字用:
\u4e00-\u9fa5
知道用\d匹配数字,\w匹配单词,\n换行……,可用什么匹配双引号呢"
正则表达式 双引号
\u0022
匹配标题:
<title>([^</title>]*)
对于html代码是:
<span name="shangcode" id="shangcode">0501010320</span>的,使用如下正则表达式精准匹配id的值
正则(反斜杠):
<span\sname=\u0022shangcode\u0022\sid=\u0022shangcode\u0022>([^</span>]*)java正则(斜杠):
<span/sname=/u0022shangcode/u0022/sid=/u0022shangcode/u0022>([^</span>]*)
对于html代码是:
<span class="s2" id="webspan"> 209.00 </span>的,使用如下正则表达式精准匹配价格的值
正则(反斜杠):
<span\sclass=\u0022s2\u0022\sid=\u0022webspan\u0022>([^</span>]*)java正则(斜杠):
<span/sclass=/u0022s2/u0022/sid=/u0022webspan/u0022>([^</span>]*)
对于html代码是:
<span title="0-1岁">0-1岁</span> <span title="6-12个月">6-12个月</span>的,使用如下正则表达式精准匹配年龄的值
正则(反斜杠):
<span\stitle=\u00220-1\u5c81\u0022>([^</span>]*)java正则(双反斜杠):
<span\\stitle=\\u00220-1\\u5c81\\u0022>([^</span>]*)
html代码是:
年龄:</td>
\u5e74\u9f84\uff1a</td>
适合年龄:</td><td width="631" bgcolor="#FFFFFF"><span title="0-1岁">
\u5e74\u9f84[^*]{20,58}([^\u0022>]*) \u5e74\u9f84\uff1a</td>[^\s]{20,22} \u5e74\u9f84\uff1a</td>[^*]{1,}
对于html代码是:
<a id="bighref" href="http://www.***.com/images/product/8b/b0/8bb05984b23b470593694b7d4d1da2b5_1_l.jpg" class="MagicZoom">的,使用如下正则精准匹配:
正则(反斜杠):
<a\sid=\u0022bighref\u0022\shref=\u0022([^\u0022]*)
java正则(斜杠):
<a\\sid=\\u0022bighref\\u0022\\shref=\\u0022([^\\u0022]*)
\u5e74\u9f84\uff1a.*?\u0022([^\u0022>]*)
love.*?you
年龄:50个字符第一个引号,
\u5e74\u9f84\uff1a[^*]{50,50}.*?\u0022([^\u0022>]*) <div class="product-heading"> <div\sclass=\u0022product-heading\u0022>[^*]{200,200}.*?>([^</>]*)
相关文章推荐
- libcurl部分总结||CURLOPT_POSTFIELDS 之间用&间隔开来
- 爬虫总结 && 部分正则匹配
- "卡秀"开发总结(NOKIA平台J2ME APP)
- MFC中的 Document / View 结构的使用 <转载+自己总结,MFC中的MVC>
- <com原理>与<com内幕>的聚合实现部分
- asp.net的<% %>总结
- Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结: 先看下面的代码: <shape>
- <备份>LVM总结
- <c++ primer>--第五部分 高级主题
- <<探讨linux/unix>>之总结
- 总结Asp.net中Page加载PostData的具体过程 进而解决"获取动态创建的控件的PostData数据"问题
- && 后部分不执行
- <2011-04-27总结 关于编程累积>
- <转载>在Eclipse中用JDBC连接Sql Server 2005总结
- strcpy/strcat && strncpy/strncat && strlcpy/strlcat 总结
- web项目总结 >> 待续
- 关于正则表达式 g,m 参数的总结,为了回答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”
- <转>二十六个月Android学习工作总结(2013-05-02更新)
- 关于正则表达式 g,m 参数的总结,为了回答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”
- <备份>9月19日简单总结