[导读]今天在整理本地资料时,挖掘出了早几年因工作需要用到爬虫的一些备注,分享下,如果能帮到一部分人,荣幸之至~
工作流大致是:
首先利用多线程,能过http协议连接对方网站,获取html字符串,可以用java.net包里的工具类或者其它开源包。
接着通过正则表达式解析html标记,网上资源很多的可以搜一下也可以用开源包。
这样一个基本的爬虫就实现了,剩下来的问题就是如何防止重复爬取网页,如何防止爬取其它链接资源,还有抓取目录的
可以去google搜索,很多的。 关键字 htmlparser ,httpclient 爬虫层级。
google: baidu:
java html解析器
//匹配url//匹配(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
知道正则表达式中匹配汉字用:
u4e00-u9fa5
知道用d匹配数字,w匹配单词,
换行……,可用什么匹配双引号呢"
正则表达式 双引号u0022
匹配标题:
([^]*)对于html代码是:0501010320
的,使用如下正则表达式精准匹配id的值
正则(反斜杠):([^]*)
java正则(斜杠):([^]*)
对于html代码是: 209.00
的,使用如下正则表达式精准匹配价格的值
正则(反斜杠):([^]*)
java正则(斜杠):([^]*)
对于html代码是:0-1岁
6-12个月
的,使用如下正则表达式精准匹配年龄的值
正则(反斜杠):([^]*)
java正则(双反斜杠):([^]*)
html代码是:
年龄:u5e74u9f84uff1a
适合年龄:
u5e74u9f84[^*]{20,58}([^u0022>]*)
u5e74u9f84uff1a
[^s]{20,22}u5e74u9f84uff1a[^*]{1,}
对于html代码是:
class="MagicZoom">
的,使用如下正则精准匹配:
正则(反斜杠):
java正则(斜杠):
u5e74u9f84uff1a.*?u0022([^u0022>]*)
love.*?you
年龄:50个字符第一个引号,u5e74u9f84uff1a[^*]{50,50}.*?u0022([^u0022>]*)
[^*]{200,200}.*?>([^>]*)