马克斯采集土豆视频失败的解决办法:曲线采集
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
//备注: 欢迎转载,转载请保留版权信息。
下面是采集目标网站的视频列表页的一个视频的列表代码:
<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
//备注: 欢迎转载,转载请保留版权信息。
相关文章推荐
- Mac安装Windows 8失败?苹果有解决办法
- R3.4.1加载ggplot2包失败的解决办法
- win7启动Windows防火墙失败提示错误0x8007042c的三种解决办法
- WebView启动支付宝客户端支付失败的解决办法
- SQL Server 2008 重起失败,删除PendingFileRenameOperations后仍无法重起问题的解决办法
- QQ发送邮件失败的解决办法
- Install-Package MySql.Data.Entity.EF6失败的解决办法
- 关于linux的ntpdate时间同步失败的解决办法
- 关于“性能计数器注册表单元配置一致性”检测失败解决办法
- [转]sql server 2000,Log.LDF文件丢失,附加数据库失败的解决办法
- 关于程序集生成失败 -- 引用的程序集没有强名称的解决办法
- mfc acvtiveX注册(regsvr32)失败(找不到、版本不兼容)的解决办法
- 关于Linux系统下phpmyadmin中出现“控制用户联接失败”的解决办法
- c++中出现error LNK1123: 转换到 COFF 期间失败的错误解决办法及Microsoft Visual Studio 安装
- Ubuntu 12.04软件中心安装flash插件过程失败解决办法
- oracle job失败次数达到16次的解决办法
- Visual Studio for mac 安装失败解决办法
- Create My Site失败,Log中出现空引用的解决办法
- VS2015下MFC程序调用控制台失败解决办法