爬虫的一点经验

6 篇文章 0 订阅

1.写一个网页爬虫的时候遇到了一个div嵌套问题,即一个大的div里面有很多小的div,如:

<div class="mytext">
	<strong>XXX</strong>
	<div class="content">XXXXX</div>
  </div>
  <p class="comment">XXXX</p>

这样一个类型,如果爬取内层的div是很简单的,正则表达式十分好写:

"/<div class=\"content\">(.*?)<\/div>/"

但是如果要爬取外面的div该怎么办呢?

当时我的做法是继续寻找,找出该段内容后面的具有识别该段内容能力的内容。

如上式,在正则表达式中加入对id为comment的p标签的检索:

"/<div class=\"mytext\">(.*?)<\/div>[\\s]*<p class=\"comment\">/"

2.当在爬取网页的时候,获得的html内容肯定有空格、换行、制表符之类的内容,这样的内容对正则表达式很不友好。

遇到这样的网页,该如何爬取呢?

我的做法是在获取到该网页的html内容时,将其进行这些空白字符的替换。在php中,对整个网页进行字符替换如下:

str_replace(array(" ","\n","\t"),"",$html);
上述只是一个方式,而且并不是最高效的。意图说明这样一种处理问题的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hober.z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值