您的位置:首页 > 其它

马克斯采集土豆视频失败的解决办法:曲线采集

2012-12-05 22:10 239 查看
用马克斯采集土豆视频的时候出现了一些问题,最终导致采集失败了。究其原因是因为 在写采集规则的时候写不出能正确获取到待采集内容页也的正确地址的规则。

下面是采集目标网站的视频列表页的一个视频的列表代码:

<div class=”pack pack_video_card “>

<div class=”pic”><a class=”inner” target=”new”  title=”《宝莱坞机器人之恋》”  href=”/programs/view/nFOorAn0-wQ/” coords=”UiIA”><img width=”132″ height=”99″ class=”pack_clipImg” alt=”印度电影《宝莱坞机器人之恋》B” src=” /093/526/181/m25.jpg” /></a>

<div class=”vpbg”></div>

<p class=”vinf”>01:19:49</p>

</div>

<div class=”txt”>

<h1 class=”caption”><a title=”《宝莱坞机器人之恋》” href=”/programs/view/nFOorAn0-wQ/” target=”new” coords=”UiIB”><span class=’highlight’>印度</span><span class=’highlight’>电影</span>《宝莱坞机器人之恋》B</a></h1>

<ul class=”info”>

<li>上传: 7天前</li>

<li>播客: <a  href=”/home/queenoftime/” target=’_blank’ coords=”UiU”>雾物语</a></li>

<li class=”d_nums”><span class=”d_play”>266</span></li>

</ul>

</div>

</div>

 

这段代码有三个A标签,其中href=”/programs/view/nFOorAn0-wQ/”是需要获取的地址,有两个地方出现,另外还有一个地址是不需要的。仔细观察会发现两处A标签都有title,且都紧靠在href之前,这就导致了写采集规则时获取内容页地址开始代码和结束代码,因为如果以href=”为开始以“为结束,这样就获取到三个地址,其中一个是重复的、另一个是多余的,这不是我们想要的;如果以<h1 class=”caption”><a title=”《宝莱坞机器人之恋》” href=”为开始以“为结束,这样就只能获取到列表页的这一个视频,因为title里面的是变量,每一个视频都不一样;如果以href=”为开始以/”
coords=”为结束,这样会获取到三个地址,且地址还不准确。就是因为title变量的存在,导致了采集规则不能正常采集。

解决办法:

将所有待采集的列表页代码保存下来(另存为纯html)放到文件夹temp中,然后通过DreamWeaver替换功能,将其中变量删除掉,这需要用到正则表达式,在DreamWeaver按Ctrl+F打开查找和替换对话框,

查找范围选择:temp文件夹

搜索:源代码

查找:btitle=”[^"]*”

替换内容不填。

填好之后点击替换全部,然后会弹出警告,选择继续就将title不能删除了。

再同一次替换功能将类似于href=”/home/queenoftime/”这样的相对路径地址替换成绝对路径。

然后需要把修改后的html文件上传到自己的网站,最后再修改采集规则,列表地址从自己网站获取,从列表页就可以采集到正确的目标网站的内容页地址了,这就是所谓的曲线采集是也。

其实在写采集规则的时候经常会有类似的问题,希望这能为大家提供一点思路,虽然需要动手修改代码,麻烦一点,但是比起存手工的录入数据来说还是大大提高了工作效率,我修改代码只花了10分钟,然后就采集到1000条数据,真是太爽啦。

//版权信息

//作者:9SiR(九哥)

//作者主页:www.9SiR.com

// 地址:http://blog.9sir.com/57001.html

//备注: 欢迎转载,转载请保留版权信息。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息